用于MVC4应用的统一或unity.mvc4

时间:2013-08-15 19:54:47

标签: c# asp.net-mvc-4 design-patterns dependency-injection c#-5.0

我想将DI添加到我的类库中,这是MVC4 Web应用程序的一部分。所以我可以选择Unity,structuremap,ninject。 我选择了Unity,因为它在Asp.Net示例中提到过。

当我搜索Nuget for Unity时,我发现Unity有多种变体。哪一个适合我的库,Unity或Unity.MVC4

3 个答案:

答案 0 :(得分:7)

你需要添加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));

答案 1 :(得分:3)

您应该使用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。我想两者都应该没问题。

答案 2 :(得分:0)

有没有办法使用unity.mvc4而不是使用

来使用xml配置
container.RegisterType<itestservice, testservice="">();

编写类似LoadConfiguration()的代码并将配置添加到web.config?

由于