用另一个IoC容器替换Spring.NET

时间:2012-03-02 22:30:29

标签: c# inversion-of-control spring.net

  

可能重复:
  How do the major C# DI/IoC frameworks compare?

我想将我当前的ioc容器 - Spring.net更改为另一个容器。随着时间的推移,我的带有spring对象定义的web.config已经大大扩展了,我认为现在是时候用更开发人员更友好和更有效的东西(Ninject,StructureMap等)替换它。你能建议我选择最好的解决方案吗? 我的应用程序是基于asp.net的web表单(目前是.NET 3.5,但在不久的将来我想将它迁移到.NET 4.0),目前我只使用Spring进行基本的构造函数和属性注入,例如:

<object id="SampleObjectA" type="MyProject.Web.SampleAobjectA, MyProject.Web">
   <constructor-arg index="0" value="SomeValue" />
</object>

<object type="Default.aspx">
   <property name="SampleObjectA" ref="SampleObjectA" />
</object>

2 个答案:

答案 0 :(得分:2)

StructureMap很好,但Castle Windsor是我个人最喜欢的 - 它有一个很棒的功能集,可以很好地处理IoC。

答案 1 :(得分:1)

以下是不同IoC容器的比较。

http://blog.ashmind.com/2008/08/19/comparing-net-di-ioc-frameworks-part-1/

如果要注册很多依赖项,您可能需要查看在StructureMap和Ninject中提供的配置支持约定。

以下是如何在Ninject中使用约定的示例。 StructureMap也支持这一点。

http://blog.decayingcode.com/post/simplifying-ninject-bindings-with-ninjectextensionsconventions