Существует проблема с неправильно настроенными DI-контейнерами под названием Captive Dependency Марка Зеемана. Это очевидно, например, когда зависимость «PerCall» внедряется в зависимость «Singleton». А как насчет сценария, когда зависимость «Transient» внедряется в «Singleton»? Для меня не столь очевидно, почему мне не следует делать это, особенно для некоторых сценариев, например, когда таймер, зарегистрированный как временный, внедряется в одноэлементный сервис и живет там вечно.
В контейнере DI SimpleInjector есть диагностическое предупреждение Lifestyle Mismatches. В описании сказано:
временному компоненту безопасно зависеть от синглтона, но не наоборот
Почему это плохо? Хороший пример плохих вещей в этом случае будет крайне полезен.
Есть ли какое-то ограничение, когда «всегда» плохо или можно допустить некоторые сценарии (см. мой пример выше)?
Подробнее здесь: https://stackoverflow.com/questions/562 ... -singleton