Ребята, я что нашел!!

Все знают, что DI - дар, данный нам свыше, который вознес жизнь программистов в райские кущи.

Единственное, что всегда меня смущало как адепта строгой типизированности - отсутствие контроля времени компиляции за корректностью настроек DI. отлов исключений при первых вызовах кода классов, полученных из DI - это был грустный неизбежный этап разработки. А если ты использовал какую-то Lazy-resolution - то вообще были хорошие шансы узнать о неправильной настройке DI от тестера, а то и от пользователя.

Так вот, мытарствам пришел конец!

Представляете, забудешь зарегистрировать какую-нибудь зависимость зависимости зависимости - у тебя вылезет ошибка на этапе компиляции!

Зарегистрируешь в качестве реализации абстрактный класс - ошибка на этапе компиляции!

Нам вернули достоинство, господа строгие типизировщики!

Реализовано за счет каких то волшебных штучек Roslyn

Пробежался по фичам - вроде, есть все, что должно быть у хорошего DI-контейнера. разные сроки жизни, фабрики, регистрация инстансов, внешнее управление диспозалом. и даже поддержка декораторов (не встречал такую раньше). Есть интеграция с Asp.Net Core

В общем, горячо рекомендую!

P.S. прям, удивительно, что не смог найти на Хабре ни одной статьи про это.

https://github.com/YairHalberstadt/stronginject