我们试图在C#应用程序中坚持使用DIP,这意味着一个项目中的更高级别的类依赖于同一项目中的接口,并且该接口由另一个项目中的较低级别的类实现。较低级别的项目自然取决于较高级别的项目。
这样,更高级别的项目可以愉快地使用界面,而不需要任何知识或依赖于它的实现。但是现在我想运行Windsor安装程序自上而下注册我需要的依赖项,所以我的主类想要注册它使用的接口的实现,而它不知道(有依赖/项目引用)它们。我需要以某种方式在项目中运行安装程序而不依赖于它们。我希望Castle能够“找到”这些实现并干净利落地为我做这件事,但它可能不可能,是吗?
我最终在与主程序集相同的目录中的每个程序集中运行安装程序,这很有效。它只是感觉不干净...我希望有一种方法可以在我的界面上要求实现而不依赖于该项目......