Что не так, когда Transient внедряется в Singleton?C#

Место общения программистов C#
Ответить
Anonymous
 Что не так, когда Transient внедряется в Singleton?

Сообщение Anonymous »

Существует проблема с неправильно настроенными DI-контейнерами под названием Captive Dependency Марка Зеемана. Это очевидно, например, когда зависимость «PerCall» внедряется в зависимость «Singleton». А как насчет сценария, когда зависимость «Transient» внедряется в «Singleton»? Для меня не столь очевидно, почему мне не следует делать это, особенно для некоторых сценариев, например, когда таймер, зарегистрированный как временный, внедряется в одноэлементный сервис и живет там вечно.

В контейнере DI SimpleInjector есть диагностическое предупреждение Lifestyle Mismatches. В описании сказано:


временному компоненту безопасно зависеть от синглтона, но не наоборот


Почему это плохо? Хороший пример плохих вещей в этом случае будет крайне полезен.
Есть ли какое-то ограничение, когда «всегда» плохо или можно допустить некоторые сценарии (см. мой пример выше)?

Подробнее здесь: https://stackoverflow.com/questions/562 ... -singleton
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»