用另一个容器替换Spring.Net IoC(例如Ninject)

Jef*_*ron 5 dependency-injection spring.net ninject inversion-of-control

我很想知道是否可以用Ninject 替换 Spring.Net的内置IoC容器.我们在我的团队中使用Ninject在我们的其他项目中使用IoC,所以如果可能的话我想继续使用该容器.

这可能吗?有没有人写过Ninject-Spring.Net适配器?

编辑

我喜欢Spring.Net包的许多部分(数据访问,事务等),但我不喜欢依赖注入容器.我想用Ninject取代它

谢谢

Mar*_*ann 6

我不能特别谈论将Spring.NET转换为Ninject,但一般来说,所有应用程序代码都应该被编写为与DI容器无关.

考虑DI容器的最佳方式是好莱坞原则.在DI术语中,它变成,不要调用DI容器,它会打电话给你.

换句话说,DI的最佳应用是使用简单的模式,例如Constructor InjectionAbstract Factory.

大多数DI容器值得他们的盐固有地理解这些模式,因此不需要特殊的,特定于DI容器,跳过箍.

这也意味着理想情况下,应该只在应用程序的单个文件中包含特定于DI容器的代码.这个地方被称为组合根,这是DI容器连接整个对象图并且不受影响的地方.

如果您遵循这一原则,您可以轻松地将一个DI容器换成另一个.

以下帖子有更多详细信息:


Eri*_*ger 2

杰弗里,你能举例说明你正在尝试做什么吗?我不明白你的意思,为什么/在哪里/如何混合这两个容器。如果您的代码完全与容器无关,那么使用任一容器进行连接都不会有任何问题。