我有以下情况。我们关注的是一个多层的应用程序,所以我为每一层做了不同的组装。让我们称它们为Top,Middle和Base。它们的依赖关系如下:
Top -> Middle > base,因为Top使用来自中间的类,而从基础使用中间的类。
现在我们将有一个secong Applikation Top2,它只需要来自中间的一些类,而不使用来自Base的任何东西。
有没有办法在Top2的部署中不包含Base?
WHen试图编译,VS告诉我,我还需要对程序集基的引用。
最佳托马斯
发布于 2013-02-01 23:59:42
听起来“中间”这个词有点太夸张了。
程序集不应该引用它不需要的任何内容。因此,您的情况听起来像是拆分程序集的一个很好的候选人。
当前
Application One -> "Middle.dll" -> "Base.dll"Your Proposal
Application One -> "Middle.dll" -> "Base.dll"
Application Two -> "Middle.dll" -> "(Redundant) Base.dll"这是一个典型的问题,当一些真正常用的对象本质上与业务逻辑不必要地混为一谈时,就会出现这种问题。例如,您可能在Middle.dll中有对应用程序有用的实用程序类,但它们实际上并不需要在其中。使用单独的实用程序dll可能会更好。
建议
Application One -> "Middle1.dll" -> "Base.dll"
-> "Middle2.dll"
Application Two -> "Middle2.dll"所有需要使用Base.dll的功能都应该移到Middle1.dll中,这些功能目前存在于Middle.dll中。这样,如果您只需要使用非依赖代码,则可以只引用Middle2.dll
这可能是一个很大的重构,这取决于你的代码库,但是以后你会喜欢它的!
此的优势
>H229
注:显然,我并不是建议你叫它们Middle1和Middle2。但你明白我的意思。
https://stackoverflow.com/questions/14649991
复制相似问题