Ответ 1

Загрузка 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 сомнительным. Полагаю, что большую часть времени использование такого общего интерфейса может быть устранено путем правильной разработки.