我正在尝试理解一个大量使用StructureMap(IOC / DI容器框架)的项目。所有共享组件的接口都包含在所有其他项目引用的单个项目中。
尝试构建依赖层次结构时,我发现很难检测哪个项目依赖于其他项目,因为没有直接的项目引用,只有一个对接口项目的引用。
我怎样才能构建层次结构树?相反,将所有接口集中在一个超级项目的良好实践中,或者它应该是“正常”,即每个项目都包含自己的公共接口(以及实现它的预定义的具体类)。这也可以通过简单地遵循引用项目来轻松构建层次结构。
答案 0 :(得分:1)
这可能有点主观,但我会提倡在包含彼此不自然相关的接口的单独项目中反对这种接口包装。如果您的应用程序的不同部分有单独的项目,那么这些项目的接口也应该是分开的。虽然有时可能有理由将接口放在与实现不同的项目中,但是很可能没有充分的理由将多个实现项目中的接口组合到您所描述的单个巨型接口项目中。
如果你遇到这种情况,想要揭示真正的运行时依赖性,你可能需要检查配置,这可能是使用注册表DSL,或者可能需要解析XML配置。