【发布时间】:2011-02-09 13:56:43
【问题描述】:
以下内容:
public class AClass
{
public ADependent Dependent { get; set; }
}
public class ADependent
{
public ADependent(AClass ownerValue) {}
}
以下注册...
builder.RegisterType<AClass>().PropertiesAutowired().InstancePerDependency();
builder.RegisterType<ADependent>().PropertiesAutowired().InstancePerDependency();
当我解析 AClass 时,如何确保“ownerValue”是正在解析的 AClass 的实例,而不是另一个实例?谢谢
关注
上面的例子并没有真正正确地捕捉到问题,例如扫描时注册时如何连接ADependent......例如
public class AClass : IAClass
{
public IADependent Dependent { get; set; }
}
public class ADependent : IADependent
{
public ADependent(IAClass ownerValue) {}
}
// registrations...
builder.RegisterAssemblyTypes(assemblies)
.AssignableTo<IAClass>()
.As<IAClass>()
.InstancePerDependency()
.PropertiesAutowired();
builder.RegisterAssemblyTypes(assemblies)
.AssignableTo<IADependent>()
.As<IADependent>()
.InstancePerDependency()
.PropertiesAutowired();
我正在寻找的功能确实是另一种关系类型,例如
public class ADependent : IADependent
{
public ADependent(OwnedBy<IAClass> ownerValue) {}
}
OwnedBy 表示 ownerValue 是导致创建 ADependent 的实例。这样的事情有意义吗?这肯定会让 UI 组件的连接变得轻而易举。
【问题讨论】:
标签: ioc-container autofac