1
这里非常简单的问题,但我很努力地找到它的任何信息。我有一个非常简单的父/子层次...自定义对象与Unity一起作用
public class Parent : IParent
{
[Dependency]
public IChild Child { get; set; }
}
public class Child : IChild
{
[Dependency]
public IParent Parent { get; set; }
}
...和我的容器注册的正是你所期望的:
this.Container.RegisterType<IParent, Parent>();
this.Container.RegisterType<IChild, Child>();
当容器创建一个父实例它会自动创建并注入一个新的儿童实例,但是如何将父引用注入该孩子?
基本上我试图找到Ninject的InScope
方法的Unity等价物。
它会在这种情况下,但我使用自定义范围的全部观点是,所以我不必将接口都传递给我的对象层次结构。在我提供的简单案例中,这不是什么大问题,当然,但我可以看到它在一个更大的应用程序中被吹掉。其他DI框架支持它,如果Unity本身没有某种机制,我会感到惊讶。 –
@MarkFeldman你在寻找类似Unity PerResolveLifetimeManager的东西吗?它按照每个解决方案重新使用实例,如http://msdn.microsoft.com/en-us/library/ff660872(v=pandp.20).aspx上的msdn所述。我认为它看起来像'this.Container.RegisterType(新的PerResolveLifetimeManager());' –
erli
关闭足够erli,谢谢! –