3 asp.net-mvc dependency-injection unity-container
这是一个C#Asp.net MVC项目.
我目前在global.asax.cs中设置了Unity映射.我想将容器设置从代码移动到web.config.
我自己的类型一切都很好,但现在我需要翻译这一行:
container.RegisterInstance(System.Web.Security.Membership.Provider);
(所有其他配置行都是container.Register 类型).
我根本没有走得太远.如果我甚至包括
<typeAliases>
<!-- others elided -->
<typeAlias
alias="MembershipProvider"
type="System.Web.Security.MembershipProvider, System.Web"></typeAlias>
Run Code Online (Sandbox Code Playgroud)
它死了配置错误:
The value of the property 'type' cannot be parsed. The error is: Could not load file or assembly 'System.Web' or one of its dependencies. The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)
所以这很奇怪 - 似乎它没有在GAC中寻找它来解决它?或者System.Web不在appdomain中?
如果我手动将System.Web复制到bin文件夹,我可以继续,并解决问题的关键:你如何RegisterInstance System.Web.Security.MembershipProvider - > System.Web.Security.Membership.Provider?
<type type="MembershipProvider" mapTo="System.Web.Security.Membership.Provider, System.Web"></type>
Run Code Online (Sandbox Code Playgroud)
给出:
无法从程序集"System.Web"加载"System.Web.Security.Membership.Provider"类型.
正如所料,因为它不是一种类型.
谢谢你的任何指示.
你试过更长的Assembliy参考吗?
System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
Run Code Online (Sandbox Code Playgroud)
所以在你的情况下,你会有一条线
<type type="MembershipProvider" mapTo="System.Web.Security.MembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"></type>
Run Code Online (Sandbox Code Playgroud)
还提到你有一个.在第二个示例中的"MembershipProvider"中间.