Автоматическая регистрация зависимостей с LightInject

Я использую LightInject в качестве контейнера IoC для моего проекта библиотеки классов. Поскольку у этих проектов нет точки входа или методов запуска, где я могу написать код для регистрации зависимостей. Я хочу реализовать автоматическую регистрацию, поэтому любой клиент, который использует мою библиотеку и имеет от нее зависимости, должен автоматически разрешаться без явного вызова клиентом метода регистрации.

Также LightInject должен быть абстрагирован от клиента. Он никогда не должен знать, как объекты создаются/уничтожаются внутри библиотеки классов.


person MAQ    schedule 13.05.2015    source источник


Ответы (1)


Реализуйте интерфейс ICompositionRoot, и метод Compose будет выполняться при первом запросе «неизвестной» службы. Другой подход — разместить регистрацию где-нибудь в статическом конструкторе.

person seesharper    schedule 15.05.2015
comment
можете поделиться примером такой реализации? Мне интересно узнать, как зависимости предоставляются потребителям. используя цепочку конструктора, например stackoverflow.com/questions/30207405/…, или любой метод автоматического разрешения для ввода конструктора в точку входа. - person VISHMAY; 04.02.2019