【问题标题】: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?

        谢谢

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-12
          • 2013-03-28
          • 2014-02-15
          • 2012-07-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多