Как использовать общий сервисный локатор в Ninject 2
Вопрос
Изменения в Ninject 2 скажи это Ниinject. служба поддержки Общий сервисный локатор, но как мне это использовать? Я не нахожу никакого руководства или образец.
Решение
Загрузка Ninject2 содержит CommonServiceLocator.NinjectAdapter.dll
(в папке «расширений» ZIP-файла). Добавьте эту DLL и Ninject.dll
к вашему проекту.
В пути запуска вашего приложения (после настройки ядра Ninject) вы можете использовать следующий код:
IKernel ninject = ...;
var locator = new NinjectServiceLocator(ninject);
ServiceLocator.SetLocatorProvider(() => locator);
Обратите внимание, что общий локатор услуг (CSL) - это библиотека, которая предоставляет абстракцию по контейнерам IOC и содержит статический фасад (реализация шаблона локатора службы). Это общий интерфейс, который разработчики могут использовать для предотвращения в зависимости от конкретной реализации МОК. CSL особенно полезен для разработчиков Framework. Разработчики приложений лучше использовать впрыск зависимости (DI). Когда DI используется правильно, нет необходимости в использовании CSL в приложении. Хотя CSL более подходит для разработки Framework, даже там я нахожу использование CSL Ascessable. В полагаю, что большую часть времени использование такого общего интерфейса может быть удалена путем правильного дизайна.