首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.net程序集依赖性链

问.net程序集依赖性链
EN

Stack Overflow用户
提问于 2013-02-01 23:49:41
回答 1查看 230关注 0票数 0

我有以下情况。我们关注的是一个多层的应用程序,所以我为每一层做了不同的组装。让我们称它们为Top,Middle和Base。它们的依赖关系如下:

Top -> Middle > base,因为Top使用来自中间的类,而从基础使用中间的类。

现在我们将有一个secong Applikation Top2,它只需要来自中间的一些类,而不使用来自Base的任何东西。

有没有办法在Top2的部署中不包含Base?

WHen试图编译,VS告诉我,我还需要对程序集基的引用。

最佳托马斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-01 23:59:42

听起来“中间”这个词有点太夸张了。

程序集不应该引用它不需要的任何内容。因此,您的情况听起来像是拆分程序集的一个很好的候选人。

当前

代码语言:javascript
复制
Application One -> "Middle.dll" -> "Base.dll"

Your Proposal

代码语言:javascript
复制
Application One -> "Middle.dll" -> "Base.dll"

Application Two -> "Middle.dll" -> "(Redundant) Base.dll"

这是一个典型的问题,当一些真正常用的对象本质上与业务逻辑不必要地混为一谈时,就会出现这种问题。例如,您可能在Middle.dll中有对应用程序有用的实用程序类,但它们实际上并不需要在其中。使用单独的实用程序dll可能会更好。

建议

代码语言:javascript
复制
Application One -> "Middle1.dll" -> "Base.dll"
                -> "Middle2.dll"

Application Two -> "Middle2.dll"

所有需要使用Base.dll的功能都应该移到Middle1.dll中,这些功能目前存在于Middle.dll中。这样,如果您只需要使用非依赖代码,则可以只引用Middle2.dll

这可能是一个很大的重构,这取决于你的代码库,但是以后你会喜欢它的!

此的优势

  • 测试将会得到改进。
  • 如果您需要使这两个应用程序完全分离,则需要做的重构工作会更少。如果您只需要为某些reason
  • Cleaner分离问题更改"Middle1“,则
  • 破坏这两个应用程序的可能性会更小。
  • 没有编译器问题,就像您目前有代码< program
  • Smaller,>H122>这样的问题,每个program
  • Smaller,更易于管理的
  • 程序都可以共享相同的命名空间,因此对于您的应用程序,它们不会知道区别。<

>H229

注:显然,我并不是建议你叫它们Middle1和Middle2。但你明白我的意思。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14649991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档