我刚刚开始学习ASP.NET MVC 5,并找到了很多有关使用Unity ioc容器进行依赖项注入的教程。
我按照以下精彩视频开始:https://www.youtube.com/watch?v=E7Voso411Vs
在寻找要安装的软件包时,我看到了:
我从2014年10月开始找到this教程,该教程显示了如何使用Unity.Mvc框架。它所需要的只是:
添加包(将UnityConfig.cs
和UnityMvcActivator.cs
自动添加到App_Start。
创建接口(例如IUnitySample
)和实现
例如,向HomeController
添加一个以IUnitySample
为参数的构造函数。
最后,在RegisterTypes方法的UnityConfig.cs
中添加register语句:container.RegisterType<IUnitySample, UnitySample>();
无需在Application_Start
方法中添加任何内容。
这似乎很容易并且可以正常工作,但是从我阅读的更新的教程中可以看出,人们使用的是Unity.Mvc5软件包,而不是Unity.Mvc。
我应该使用什么来学习ASP.NET MVC 5?它们之间有什么区别?这个比那个好吗?
最佳答案
Unity.Mvc5和Unity.Mvc由两个不同的组织创建,并具有不同的实现。
Unity.Mvc5为每个Web请求创建一个子容器。内置HierarchicalLifetimeManager
可以很好地工作。
Unity.Mvc不会创建子容器,而是选择创建一个名为PerRequestLifetimeManager
的新LifetimeManager。