top of page

StrongInject: строгая типизация пришла в Dependency Injection

  • Фото автора: Алик Ким
    Алик Ким
  • 16 янв. 2023 г.
  • 1 мин. чтения

Обновлено: 8 апр. 2023 г.

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

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

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

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


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

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

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


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


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


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




UPD: не работает, если использовать внутри .net Standard - сборки, вызываемой из .net Framework - https://github.com/AliqQim/test_projects.git , ветка DI_StrongInject__references_from_other_projects


 
 
 

Недавние посты

Смотреть все

Comments


Околокомпьютерный блог Алика

  • alt.text.label.Facebook

© Околокомпьютерный блог Алика , 2022. Сайт создан на Wix.com

bottom of page