/ninject.extensions.dependencyloading

dll modularity based on ninject

Primary LanguageC#GNU Lesser General Public License v3.0LGPL-3.0

Only in Russian, but the translator to help you!

Расширение позволяет загрузить в IoC-контейнер список экземпляров модулей.
На входе достаточно неупорядченного списка типов модулей.

При загрузке доступно две стратегии:

1. С предсортировкой по зависимостям. (удобно при многократной или динамической загрузке)
В этом случае требуется атрибут который маркирует экспортируемый сервис. Сам алгоритм сортировки может определить циклическую зависимость.
Отдельно проводится сортировка, потом загрузка.

2. Сортировка в процесе загрузки. (удобно при однократной загрузке)
Если загружается не сортированный список, то будет сформирован отсортированный вариант (например, это можно отобразить в логировании как предупреждение. Это позволит  обновить конфигурацию сервиса)
Если загрузка не возможна, то будет сформирован список тех модулей для которых не нашлось импортируемых сервисов.

Пример можно посмотреть в тестах.

Удачи!