Я недавно сделал переход от StructureMap к Ninject. Все было гладко, пока я не понял, что у Ninject нет версии ObjectFactory (сервисного локатора) StructureMap.
Я обнаружил Common Service Locator, который предоставляет шаблон Service Locator для любого контейнера IOC, включая Ninject. Он отлично работает внутри моего проекта «запуска» - например, Веб-сайт. Но если я пытаюсь получить доступ к ServiceLocator.Current из подпроектов, например, Ядро или данные Похоже, что CommonServiceLocator не знает ни о одном из моих отображений зависимостей.
Как использовать Common Service Locator из подпроекта?
N.B. Мне известны дебаты о ServiceLocator как о паттерне / анти-паттерне. Я обнаружил, что существует компромисс между ServiceLocator как анти-паттерном и Anemic Domain Model как анти-паттерном - иногда его гораздо проще и удобнее использовать для поиска сервисов.