UnityContainer, ребенок контейнер для инъекций

голоса
2

Я довольно новыми для блока приложений Unity, и я немного застрял, пытаясь реализовать следующее. У меня есть родительский и дочерний контейнер. Когда я разрешаю новый экземпляр дочернего контейнера я хочу, чтобы ввести новый UnityContainer в конструктор с помощью метода 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;
    }
}
Задан 10/12/2008 в 02:27
источник пользователем
На других языках...                            


1 ответов

голоса
0

Самое простое решение, которое я вижу, чтобы дать конструктору ChildContainer в родительском контейнер и вызвать метод CreateChildContainer () внутри CTOR:

public class ChildContainer2 : IChildContainer
{
    private IUnityContainer _container;

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

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

Но почему вы хотите, чтобы сделать ребенка контейнер службы? Не было бы лучше, если каждый компонент в вашем приложении будет создать дочерний контейнер сам по себе, если он нуждается в одном?

Ответил 10/12/2008 в 14:51
источник пользователем

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