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中执行相同的操作?
最诚挚的问候,塞巴斯蒂安
您可以使用 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)