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

Seb*_*idz 5 c# unity-container asp.net-mvc-5 asp.net-identity

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

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

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

从这篇文章如何将MVC 5身份验证添加到Unity IoC?我知道问题是Unity选择具有更长参数列表的构造函数.

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

container.RegisterType<AccountController>(new InjectionConstructor());
Run Code Online (Sandbox Code Playgroud)

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

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

Ran*_*ica 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>
Run Code Online (Sandbox Code Playgroud)

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

IUnityContainer container = new UnityContainer();
container.LoadConfiguration();
Run Code Online (Sandbox Code Playgroud)