我一直在寻找ASP.NET MVC的良好依赖注入。 最近我是Java EE程序员,我总是使用Spring for 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 Framework吗?
提前致谢。
答案 0 :(得分:7)
我不会说有一个事实上推荐的用于ASP.NET MVC框架的DI框架。但是,在.NET世界中有相当多的流行DI框架:Castle Windsor,Autofac,StructureMap,Ninject,Unity,Sprint.NET等
我肯定会推荐Ninject。来源可以在github找到。各种版本的ASP.NET MVC框架都有Ninject extension。该项目还包含一个示例应用程序。
如果您想在野外查看使用Ninject的应用程序,我会推荐博客引擎Subtext。
我还建议你看一下Mark Seemann的书:Dependency Injection in .NET。它涵盖了.NET的一些主要框架。不幸的是,它不包括Ninject。
答案 1 :(得分:4)
Castle Windsor,Ninject,Autofac都是不错的候选人
我个人现在使用Castle。
有关如何设置的好例子,请参阅 http://wiki.sharparchitecture.net/
答案 2 :(得分:3)
我已将Unity和Castle Windsor与MVC一起使用。两者都很好,都有XML或流畅的API配置。
答案 3 :(得分:2)
我认为没有“首选”框架。正如其他答案所示,您有多种选择,其中spring.net就是其中之一。
关于spring.net:
如果您想通过spring.net利用Spring Java技能,可能需要考虑以上因素。
答案 4 :(得分:1)
您可以像在Java世界中一样使用CodeConfig方法:
http://springframework.net/#spring-code-config-1.0.1-released
提供MVC样本。