9

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

当我在 Nuget 中搜索 Unity 时,我发现 Unity 有多种变体。哪个适合我的库,Unity 还是 Unity.MVC4

4

3 回答 3

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));
于 2013-08-15T20:08:56.657 回答
3

您应该使用 NuGet 为 ASP.NET MVC 安装 Unity BootStrapper。它由 Microsoft 创建并使用最新的 Unity 3.0。在第 45 页的 Microsoft Unity 开发人员指南中也提到了这一点。

我今天尝试了 Unity.MVC4。目前的1.2版本仍然使用Unity 2,也许下一个版本会使用新的Unity 3.0。我想那两个都应该没问题。

于 2013-09-25T18:09:34.063 回答
0

有没有办法将 xml 配置与 unity.mvc4 一起使用,而不是使用

container.RegisterType<itestservice, testservice="">();

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

谢谢

于 2014-02-16T22:11:17.290 回答