【问题标题】:unity or unity.mvc4 for MVC4 applicationunity 或 unity.mvc4 用于 MVC4 应用程序
【发布时间】:2013-08-18 02:46:08
【问题描述】:
我想将 DI 添加到我的类库中,该类库是 MVC4 Web 应用程序的一部分。所以我可以选择 Unity、structuremap、ninject。
我选择了 unity,因为它在 Asp.Net 示例中被提及。
当我在 Nuget 中搜索 Unity 时,我发现 Unity 有多种变体。哪个适合我的库,Unity还是Unity.MVC4
【问题讨论】:
标签:
c#
asp.net-mvc-4
design-patterns
dependency-injection
c#-5.0
【解决方案1】:
您需要添加 Unity.MVC4 包,因为它提供了 Unity 和 ASP.NET MVC 4 之间的集成。但是,Unity.MVC4 依赖于 Unity,因此通过添加您将获得这两个包。
您还需要这样的东西来配置集成:
var container = new UnityContainer();
// configure container here (RegisterType, etc.), then make sure MVC 4 uses Unity...
DependencyResolver.SetResolver(new Unity.Mvc4.UnityDependencyResolver(container));
【解决方案2】:
您应该使用 NuGet 为 ASP.NET MVC 安装 Unity BootStrapper。它由 Microsoft 创建并使用最新的 Unity 3.0。在第 45 页的Developer's Guide to Microsoft Unity 中也提到过。
我今天尝试了 Unity.MVC4。目前的1.2版本仍然使用Unity 2,也许下一个版本会使用新的Unity 3.0。我想那两个都应该没问题。
【解决方案3】:
有没有办法在 unity.mvc4 中使用 xml 配置而不是使用
container.RegisterType<itestservice, testservice="">();
编写类似 LoadConfiguration() 的代码并将配置添加到 web.config?
谢谢