通过注入 IUnityContainer 解决 Unity 和循环依赖
Unity and circular dependency resolution by injecting IUnityContainer
Unity 存在循环引用问题。我目前的设计类似于复合模型,例如
public interface IInterface {
}
public class Implementation : IInterface{
[Dependency]
public IInterface[] Children{get;set;}
}
我希望注入 Implementation.Children 的 IInterface 集合包含 IInterface 的所有实现(包括 class 实现)。
我的一个解决方案是在运行时动态解析子 属性 而不是 IOC 注入它们。但是为了能够做到这一点,我需要访问 IUnityContainer。
是否可以将 IUnityContainer 注入到实现中?
我不想要 IUnityContainer 的全局单例,因为这些 class 由不同的应用程序使用,每个 initializing/instantiating 容器都不同。
提前致谢
Is it possible to inject IUnityContainer into Implementation?
您可以只将容器声明为依赖项:
[Dependency]
public IUnityContainer Container { get; set; }
容器将自己注入属性;您甚至不需要明确注册它。
Unity 存在循环引用问题。我目前的设计类似于复合模型,例如
public interface IInterface {
}
public class Implementation : IInterface{
[Dependency]
public IInterface[] Children{get;set;}
}
我希望注入 Implementation.Children 的 IInterface 集合包含 IInterface 的所有实现(包括 class 实现)。
我的一个解决方案是在运行时动态解析子 属性 而不是 IOC 注入它们。但是为了能够做到这一点,我需要访问 IUnityContainer。
是否可以将 IUnityContainer 注入到实现中?
我不想要 IUnityContainer 的全局单例,因为这些 class 由不同的应用程序使用,每个 initializing/instantiating 容器都不同。
提前致谢
Is it possible to inject IUnityContainer into Implementation?
您可以只将容器声明为依赖项:
[Dependency]
public IUnityContainer Container { get; set; }
容器将自己注入属性;您甚至不需要明确注册它。