ответ

26

Загрузка Ninject2 содержит CommonServiceLocator.NinjectAdapter.dll (в папке «расширения» zip-файла). Добавьте эту DLL и Ninject.dll в свой проект.

В пути запуска вашего приложения (после настройки ядра Ninject), вы можете использовать следующий код:

IKernel ninject = ...; 

var locator = new NinjectServiceLocator(ninject); 

ServiceLocator.SetLocatorProvider(() => locator); 

Обратите внимание, что Common Service Locator (CSL) является библиотекой, которая обеспечивает абстракцию над контейнерами IoC и содержит статический фасад (реализующий шаблон локатора службы). Это общий интерфейс, который разработчики могут использовать для предотвращения в зависимости от конкретной реализации IoC. CSL особенно полезен для разработчиков рамок. Разработчики приложений лучше используют шаблон инъекции зависимостей (DI). Когда DI используется правильно, нет необходимости использовать CSL в приложении. Хотя CSL больше подходит для разработки рамок, даже там я считаю использование CSL сомнительным. Полагайте, что большую часть времени использование такого общего интерфейса может быть устранено путем правильной разработки.

+0

Что делает CommonServiceLocator? – Chev

+0

Gotcha, спасибо за информацию. Я с тобой согласен. – Chev

Смежные вопросы