asp.net mvc 4将依赖项注入不同的控制器类型

时间:2012-07-27 18:59:22

标签: unity-container asp.net-mvc-4

我使用MVC 4中提供的两种类型的控制器:System.Web.Mvc.Controller和System.Web.Http.ApiController。我需要能够使用Unity将依赖项注入控制器。

对于我使用Unity.WebApi的ApiControllers: GlobalConfiguration.Configuration.DependencyResolver = new Unity.WebApi.UnityDependencyResolver(_container);

对于控制器,我尝试使用我使用Nuget添加的Unity.Mvc3: DependencyResolver.SetResolver(new Unity.Mvc3.UnityDependencyResolver(_container));

但是,我收到运行时错误: 无法加载文件或程序集&System; Web.Mvc,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个依赖项。系统找不到指定的文件。

有没有人知道适用于这种情况的解决方案? 感谢

1 个答案:

答案 0 :(得分:0)

在web.config中添加绑定重定向:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>      
    </assemblyBinding>
  </runtime>