ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я знаю, что между DI и шаблонами локатора обслуживания существует дискуссия. У меня есть вопрос, который призван избежать дебатов. Этот вопрос предназначен для поклонников локатора службы, которые, похоже, думают, что Фаулер «ДИ ... трудно понять ... в целом я предпочитаю избегать этого, если только в этом не нуждаюсь». Для целей моего вопроса я должен избегать DI (причины намеренно не указаны), поэтому я не, пытаясь вызвать споры, не связанные с моим вопросом.Контейнер «ребенок» МОК/Локатор услуг
ВОПРОС: Единственная проблема, с которой я мог бы столкнуться, сохраняя мой контейнер IOC в одноэлементном режиме (помните о моем отказе от ответственности выше), заключается в использовании дочерних контейнеров. Предположительно, детские контейнеры сами по себе не будут одиночными. Сначала я думал, что это создает реальную проблему. Но когда я думал об этом, я начал думать, что именно такое поведение я хочу (детские контейнеры не являются одиночными, и могут быть Disposed() по желанию).
Тогда мои мысли пошли дальше в философское царство. Поскольку я являюсь поклонником локатора службы, мне интересно, насколько важно понимать понятие дочернего контейнера. В небольшом наборе случаев, когда я видел полезность, он должен был удовлетворить DI (которого я вообще избегаю), или проблема была разрешима без обращения в контейнер IOC. Мои мысли были частично вдохновлены IServiceLocator interface, который даже не удосужился перечислить метод GetChildContainer.
Итак, мой вопрос в том, что: если вы являетесь поклонником локатора службы, обнаружили ли вы, что детские контейнеры обычно спорны? В противном случае, когда они были необходимы?
дополнительный кредит: если есть другие философские проблемы с локатором сервисов в одноэлементном режиме (помимо тех, которые ставят сторонники DI), то какие они?
Ваш ответ - именно то, что я искал, и даже лучше! Вы нашли время, чтобы указать, как часто детские контейнеры используются в различных рамках (* очень * полезный лакомый кусочек) !!! Возможно, я мог бы беспокоить вас еще раз: где Unity вписывается в спектр «детского контейнера»? Являются ли детские контейнеры в Unity более похожими на Windsor (нечасто) или больше похожими на Autofac (часто)? –
Извините, у меня нет большого опыта работы с Unity. –