我想将 DI 添加到我的类库中,该类库是 MVC4 Web 应用程序的一部分。所以我可以选择 Unity、structuremap、ninject。我选择了统一,因为它在 Asp.Net 示例中被提及。
当我在 Nuget 中搜索 Unity 时,我发现 Unity 有多种变体。哪个适合我的库,Unity 还是 Unity.MVC4
我想将 DI 添加到我的类库中,该类库是 MVC4 Web 应用程序的一部分。所以我可以选择 Unity、structuremap、ninject。我选择了统一,因为它在 Asp.Net 示例中被提及。
当我在 Nuget 中搜索 Unity 时,我发现 Unity 有多种变体。哪个适合我的库,Unity 还是 Unity.MVC4
您将需要添加 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));
您应该使用 NuGet 为 ASP.NET MVC 安装 Unity BootStrapper。它由 Microsoft 创建并使用最新的 Unity 3.0。在第 45 页的 Microsoft Unity 开发人员指南中也提到了这一点。
我今天尝试了 Unity.MVC4。目前的1.2版本仍然使用Unity 2,也许下一个版本会使用新的Unity 3.0。我想那两个都应该没问题。
有没有办法将 xml 配置与 unity.mvc4 一起使用,而不是使用
container.RegisterType<itestservice, testservice="">();
编写类似 LoadConfiguration() 的代码并将配置添加到 web.config?
谢谢