Unity.Mvc与Unity.Mvc5差异

时间:2016-11-13 11:15:31

标签: c# model-view-controller asp.net-mvc-5 unity-container ioc-container

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

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

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

enter image description here

我从2014年10月开始发现this教程,其中介绍了如何使用 Unity.Mvc 框架。所需要的只是:

  1. 添加包(自动将UnityConfig.csUnityMvcActivator.cs添加到App_Start。
  2. 创建界面(例如IUnitySample)和实现
  3. 将构造函数添加到HomeController,例如将IUnitySample作为参数。
  4. 最后,在方法RegisterTypes中添加UnityConfig.cs寄存器语句:container.RegisterType<IUnitySample, UnitySample>();
  5. 无需在 Application_Start方法中添加任何内容。

    这看起来非常简单且有效,但从我阅读的更新的教程中可以看出,人们使用的是 Unity.Mvc5 包,而不是Unity.Mvc。

    我应该用什么来学习ASP.NET MVC 5?它们之间有什么区别?是一个比另一个好吗?

2 个答案:

答案 0 :(得分:3)

Unity.Mvc5Unity.Mvc由两个不同的组织创建,具有不同的实现。

Unity.Mvc5 为每个网络请求创建一个子容器。这适用于内置的HierarchicalLifetimeManager

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

答案 1 :(得分:0)

就个人而言,我认为Unity.Mvc是其统计信息(例如:总下载量)的更好选择,因为它在“版本历史记录”中显示的更新频率更高。因此,似乎更值得关注。