Unity在循环引用方面存在问题。我目前的设计类似于复合模型,例如
public interface IInterface {
}
public class Implementation : IInterface{
[Dependency]
public IInterface[] Children{get;set;}
}
我希望注入到Implementation.Children中的IInterface集合包含IInterface的所有实现(包括类实现)。
我的一个解决方案是在运行时动态解析Children属性,而不是IOC注入它们。但是为了能够做到这一点,我需要访问IUnityContainer。
是否可以将IUnityContainer注入实现?
我不想要IUnityContainer的全局单例,因为这些类被不同的应用程序使用,每个应用程序都以不同的方式初始化/实例化容器。
提前致谢
答案 0 :(得分:0)
是否可以将IUnityContainer注入实现?
您可以将容器声明为依赖项:
[Dependency]
public IUnityContainer Container { get; set; }
容器将自己注入财产;你甚至不需要明确地注册它。