Задать вопрос
@Oxoron
Шарпер

Где хранить IoC контейнер?

Добрый вечер.
Начинаю большой проект, и чувствую, что пришло время для использования IoC-контейнера, точнее, UnityContainer. Как создать экземпляр контейнера - понятно. Как настроить в нем связи интерфейс-дефолтный_объект - понятно. Как попросить у экземпляра контейнера создать экземпляр дефолтного класса для интерфейса IAnyInterface - понятно.

Непонятно, где хранить тот самый экземпляр UnityContainer? Создавать поле в статичном классе типа
public readonly UnityContainer container = GetInitedContainer();
?
  • Вопрос задан
  • 345 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Решения вопроса 1
@VanKrock
Если это будет ApplicationContainer, то можно реализовать синглтоном.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
om2804
@om2804
А для чего обеспечивать глобальный доступ к контейнеру? Можно юзать инъекцию в конструктор?! Правда, если зависимостей много, то конструктор разрастается (у каждой реализации есть свои минусы), зато нет проблем с тестируемостью (и у каждой есть плюсы).
У синглтона больше проблем, чем плюсов. Если всё же синглтон, то посмотрите в сторону Ambient Context реализации
Вообще многое зависит от окружения, реализации и т.п.

Статья по теме habrahabr.ru/post/62830
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы