UnityContainer,子容器注入
-
21-08-2019 - |
题
我是很新的统一应用程序块和我有点卡住试图执行以下。我有一个父和子容器。当我解决孩子容器的新实例我想用CreateChildContainer方法注入了新的UnityContainer到构造函数。
public class RootContainer
{
private IUnityContainer _container;
public RootContainer()
{
_container = new UnityContainer();
_container.RegisterType<IChildContainer, ChildContainer>();
}
}
public interface IChildContainer { }
public class ChildContainer : IChildContainer
{
private IUnityContainer _container;
/* I want to inject the parent.CreateChildContainer() into this constructor */
public ChildContainer(IUnityContainer container)
{
_container = container;
}
}
解决方案
我看到的最简单的解决方案是给ChildContainer的构造父容器和构造函数中调用CreateChildContainer()方法:
public class ChildContainer2 : IChildContainer
{
private IUnityContainer _container;
public ChildContainer(IUnityContainer parent)
{
_container = parent.CreateChildContainer();
}
public IUnityContainer Container { get { return _container; } }
}
但是,为什么你想孩子容器服务?那岂不是更好,如果在你的应用程序的每个组件会自行创建子容器,如果它需要一个?
不隶属于 StackOverflow