类型IUserStore`1没有可访问的构造函数

时间:2014-04-03 18:46:21

标签: c# unity-container asp.net-mvc-5 asp.net-identity

我想用Unity 3设置MVC5应用程序。 我从标准模板创建了默认的web mvc5应用程序,然后添加了单元

当我在AccountController中访问Register操作时,我得到以下异常:

IUserStore类型`1没有可访问的构造函数。

来自这篇文章How to add MVC 5 authentication to Unity IoC?我知道问题是Unity选择了具有更长参数列表的构造函数。

解决方案是通过以下方式注册要与默认构造函数一起使用的Account控制器:

container.RegisterType<AccountController>(new InjectionConstructor());

我想要做的是在代码中的配置文件中注册它 是否可以在web.config中执行相同的操作?

最诚挚的问候, 塞巴斯蒂安

1 个答案:

答案 0 :(得分:4)

您可以使用XML配置配置Unity。在你的情况下,它看起来像这样:

<configSections>
  <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/>
</configSections>    

<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">    
  <container>
    <register type="MyApp.AccountController, MyApp">
      <constructor />
    </register>
   </container>
</unity>

然后你需要显式加载配置:

IUnityContainer container = new UnityContainer();
container.LoadConfiguration();