Проекты, разработкой и сопровождением которых я занимаюсь, довольно велики по объему. По этой причине в них активно используется паттерн [Dependency Injection][1].
Важнейшей частью его реализации является [Composition Root][2] — точка сборки, обычно выполняемая по паттерну [Register-Resolve-Release][3]. Для хорошо читаемого, компактного и выразительного описания Composition Root обычно используется такой инструмент как [DI-контейнер][4], при наличии выбора я предпочитаю использовать [Autofac][5].
Несмотря на то, что данный контейнер заслуженно считается лидером по удобству, у разработчиков встречается немало вопросов и даже претензий. Для наиболее частых проблем из собственной практики я опишу способы, которые могут помочь смягчить или полностью убрать практически все трудности, связанные с использованием Autofac как инструмента конфигурации Composition Root.
[Читать дальше →][6]
[1]:
https://en.wikipedia.org/wiki/Dependency_injection
[2]:
http://blog.ploeh.dk/2011/07/28/CompositionRoot/
[3]:
http://blog.ploeh.dk/2010/09/29/TheRegisterResolveReleasepattern/
[4]:
https://smarly.net/dependency-injection-in-net/putting-dependency-injection-on-the-map/di-containers/introducing-di-containers
[5]:
https://autofac.org/
[6]:
https://habrahabr.ru/post/269479/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut