.net 如何使Unity将一个类型解析为另一个类型的属性?
假设我有以下课程:.net 如何使Unity将一个类型解析为另一个类型的属性?,.net,unity-container,.net,Unity Container,假设我有以下课程: class A { public B B { get; set; } } class B { } 我还有一个Unity容器,其中a注册为单例: container = new UnityContainer(); container.RegisterType<A>(new ContainerControlledLifetimeManager()); 结果 B的新实例位于B变量中 期望结果 应返回已注册的A的B属性的值 我如何才能做到这一点? 补充资料
class A
{
public B B { get; set; }
}
class B
{
}
我还有一个Unity容器,其中a
注册为单例:
container = new UnityContainer();
container.RegisterType<A>(new ContainerControlledLifetimeManager());
结果
B
的新实例位于B
变量中
期望结果
应返回已注册的A
的B
属性的值
我如何才能做到这一点?
补充资料
在我的特定情况下,
A
是Sql的LinqDataContext
,而B
是其中一个表。当请求/需要B的实例时,可以使用返回A.B
的InjectionFactory:
IUnityContainer container=newunitycontainer();
RegisterType(新的ContainerControlledLifetimeManager());
RegisterType(新的InjectionFactory(c=>c.Resolve().B));
var a=container.Resolve();
//A.B设置在某个地方
a、 B=新的B();
var b=container.Resolve();
System.Diagnostics.Debug.Assert(ReferenceEquals(a.B,B));
var b = container.Resolve<B>();