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