Unity依赖注入 - 如何在.config中注册实例?

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"类型.

正如所料,因为它不是一种类型.

谢谢你的任何指示.

Mar*_*rst 5

你试过更长的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"中间.