我刚刚开始学习ASP.NET MVC 5,并找到了很多有关使用Unity ioc容器进行依赖项注入的教程。

我按照以下精彩视频开始:https://www.youtube.com/watch?v=E7Voso411Vs

在寻找要安装的软件包时,我看到了:

c# - Unity.Mvc与Unity.Mvc5的区别-LMLPHP

我从2014年10月开始找到this教程,该教程显示了如何使用Unity.Mvc框架。它所需要的只是:


添加包(将UnityConfig.csUnityMvcActivator.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.Mvc5Unity.Mvc由两个不同的组织创建,并具有不同的实现。

Unity.Mvc5为每个Web请求创建一个子容器。内置HierarchicalLifetimeManager可以很好地工作。

Unity.Mvc不会创建子容器,而是选择创建一个名为PerRequestLifetimeManager的新LifetimeManager。

10-06 11:47