UnityContainer, injecção recipiente criança

votos
2

Eu sou muito novo para o Bloco Unidade de Aplicação e estou um pouco preso tentando implementar o seguinte. Eu tenho um contêiner pai e filho. Quando eu resolver uma nova instância do contêiner filho eu quero para injetar um novo UnityContainer para o construtor usando o método CreateChildContainer.

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;
    }
}
Publicado 10/12/2008 em 02:27
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

A solução mais simples que eu vejo é para dar o construtor do ChildContainer o contêiner pai e chamar o método CreateChildContainer () dentro do ctor:

public class ChildContainer2 : IChildContainer
{
    private IUnityContainer _container;

    public ChildContainer(IUnityContainer parent)
    {
        _container = parent.CreateChildContainer();
    }

    public IUnityContainer Container { get { return _container; } }
}

Mas por que você quer fazer o contêiner filho de um serviço? Não seria melhor se cada componente na sua aplicação criaria um recipiente criança, por si só, se ele precisa de um?

Respondeu 10/12/2008 em 14:51
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more