.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的Linq
DataContext
,而
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>();