是否值得为.Net中的非MVC项目设置IoC?

g.f*_*ley 1 .net wcf castle-windsor inversion-of-control

在任何地方,我都在寻找有关Windsor或Spring.net的信息,它总是参考MVC.试图为Web表单项目或wcf实现它有什么意义吗?

Mas*_*sif 5

无论它处于什么样的项目中,IoC都同样有用.它解决的问题(可测试性等......等等)并不特定于任何特定类型的项目.


moo*_*000 5

碰巧的是,ASP.NET MVC Web应用程序的性质非常适合IoC,因为它处理请求的方式.您可以说Web应用程序的启动请求 - 响应生命周期以及ASP.NET MVC处理这些事情的方式直接对应于KrzysztofKoźmic所谓的三个调用模式以及Mark Seemann所谓的Register Resolve Release模式.

但是,即使在直接适用于它的应用程序中,有一些方法可以遵循这种模式- 例如在WinForms应用程序,Windows服务等中.

<shameless_plug>

我写了一篇关于Castle Windsor的TypedFactoryFacility 的博客文章,这是Windsor的一个功能,允许在没有你的代码知道的情况下调用容器,真正的IoC风格.

类型化的工厂设施使Windsor能够动态实现接口,例如ISomeFactory,将调用委托给Resolve下面的容器方法,从而允许您的代码仅依赖于ISomeFactory接口.

</ shameless_plug>