通过注入IUnityContainer来统一和循环依赖解析

时间:2015-03-24 00:39:09

标签: c# dependency-injection unity-container

Unity在循环引用方面存在问题。我目前的设计类似于复合模型,例如

public interface IInterface {
}

public class Implementation : IInterface{
    [Dependency]
    public IInterface[] Children{get;set;}
}

我希望注入到Implementation.Children中的IInterface集合包含IInterface的所有实现(包括类实现)。

我的一个解决方案是在运行时动态解析Children属性,而不是IOC注入它们。但是为了能够做到这一点,我需要访问IUnityContainer。

是否可以将IUnityContainer注入实现?

我不想要IUnityContainer的全局单例,因为这些类被不同的应用程序使用,每个应用程序都以不同的方式初始化/实例化容器。

提前致谢

1 个答案:

答案 0 :(得分:0)

  

是否可以将IUnityContainer注入实现?

您可以将容器声明为依赖项:

[Dependency]
public IUnityContainer Container { get; set; }

容器将自己注入财产;你甚至不需要明确地注册它。