问题描述
||
我一直在寻找ASP.NET MVC的良好依赖注入。
最近我是Java EE程序员,我一直将Spring用于DI Framework。
但是在从互联网上搜索了一些教程之后。 Spring.NET需要为每个需要注入的控制器进行显式XML配置。
<spring>
<context>
<resource uri=\"config://spring/objects\"/>
</context>
<objects xmlns=\"http://www.springframework.net\">
<object id=\"HomeController\" type=\"SpringTestApplication.Controllers.HomeController,SpringTestApplication\" singleton=\"false\">
<property name=\"TestProperty\" value=\"This has been injected via Spring.Net\"/>
</object>
</objects>
</spring>
而且我认为它非常专心,因为在Java World中没有像Spring这样的自动装配功能。
您能为我推荐ASP.NET MVC的推荐DI框架吗?
提前致谢。
解决方法
我不会说ASP.NET MVC框架实际上建议使用DI框架。但是,.NET世界中有很多流行的DI框架:Castle Windsor,Autofac,StructureMap,Ninject,Unity,Sprint.NET等。
我肯定会推荐Ninject。源码可以在github上找到。 Ninject扩展适用于ASP.NET MVC框架的各种版本。该项目还包含一个示例应用程序。
如果您想看看在野外使用Ninject的应用程序,我建议您使用博客引擎Subtext。
我还可以建议您看看Mark Seemann的书:.NET中的依赖注入。它涵盖了.NET的一些主要框架。不幸的是,它不涵盖Ninject。
,温莎城堡,Ninject,Autofac都是不错的候选人
我个人现在使用Castle。
有关如何进行设置的良好示例,请参见
http://wiki.sharparchitecture.net/
,我已经将Unity和Castle Windsor与MVC一起使用了。两者都很好,都具有XML或流畅的API配置。
,我认为没有“首选”框架。如其他答案所示,您有多个选择,其中spring.net是其中之一。
关于spring.net:
您可能会喜欢一个CodeConfig项目
通过vs.net加载项,Visual Studio对xml配置的支持得到了一些改进,ReSharper也提供了帮助
现可使用版本1.3.1(当前版本)支持asp.net mvc 2
1.3.2版本将立即支持asp.net mvc 3。
如果您想通过使用spring.net来利用Spring Java技能,则可能需要考虑上述因素。
,您可以像在Java世界中一样使用CodeConfig方法:
http://springframework.net/#spring-code-config-1.0.1-发布
提供了一个MVC示例。