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

本文关键字:访问 构造函数 IUserStore 类型 | 更新日期: 2023-09-27 17:56:23

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

当我访问帐户控制器中的注册操作时,我收到以下异常:

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

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

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

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

我想做的是在代码中的配置文件中注册它 no是否可以在web.config中做同样的事情?

此致敬意塞巴斯蒂安

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

您可以使用 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();