Я запускаю многопроектное решение, которое будет иметь более одной точки входа, например, службу Windows, веб-сайты ASP.NET, контроллеры WebApi и т. д. Я остановился на SimpleInjector, так как он очень быстрый и мне не нужны какие-либо дополнительные Особенности.
Насколько я понимаю, SimpleInjector должен быть централизованно настроен при запуске. Начиная со следующего базового примера набора проектов
- NS.Контроллеры
- NS.Core.Data
- NS.Core.Data.Model
- НС.Веб
- NS.WindowsService (предположим, что это не всегда будет работать)
С несколькими точками входа, куда должна идти начальная загрузка SimpleInjector и может/должна ли она обрабатываться централизованно (в этом случае процесс конфигурации должен будет ссылаться на все проекты, чтобы иметь возможность настроить все классы решений)?
Должен ли я иметь глобальный экземпляр (например, NS.Global.Container), который не ссылается ни на один из других проектов, и каждая точка входа отвечает за добавление собственных требований к экземпляру при запуске (изящно обрабатывая повторяющиеся регистрации, такие как NS.Core.Model)?
Должен ли я использовать событие ResolveUnregisteredType для обработки регистраций по запросу?
Мне просто не хватает каких-то школьных знаний?
ОБНОВЛЕНО:
Ссылки, предоставленные Стивеном в комментариях ниже, дают исчерпывающие ответы на этот вопрос.
Где найти модули Ninject в многоуровневом приложение уровня
Как инициализировать Ninject в части проекта класса сайта mvc