我很想知道是否可以 替换 Spring.Net 带有 Ninject 的内置 IoC 容器。我们在我的团队中将 Ninject 用于其他项目中的 IoC,因此如果可能的话,我想继续使用该容器。
这可能吗?有没有人写过 Ninject-Spring.Net 适配器?
编辑
我喜欢 Spring.Net 包的许多部分(数据访问、事务等),但我不太喜欢依赖注入(inject)容器。我想用 Ninject 替换它
谢谢
最佳答案
我无法具体谈论如何将 Spring.NET 转换为 Ninject,但总的来说,所有应用程序代码都应该写成 DI 容器无关 .
考虑 DI 容器的最佳方式是 Hollywood Principle .在 DI 术语中,它变为 不要调用 DI Container,它会调用你 .
换句话说,DI 的最佳应用是使用简单的模式,例如 。构造函数注入(inject) 和 抽象工厂 .
大多数值得一提的 DI 容器本质上都理解这些模式,因此不需要特殊的、特定于 DI 容器的跳过箍。
这也意味着理想情况下,您应该只在应用程序的单个文件中包含特定于 DI 容器的代码。这个地方叫做作文根 ,这就是 DI 容器连接整个对象图并让路的地方。
如果您遵循这一原则,您可以轻松地将一个 DI Container 换成另一个。
以下帖子有更多详细信息:
关于dependency-injection - 将 Spring.Net IoC 替换为另一个容器(例如 Ninject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2038531/