Реализовать N2.Engine.IServiceContainer для Ninject
Я изучаю возможность интеграции N2CMS в существующий веб-сайт.
Проблема, которую я получаю, состоит в том, что механизм IOC, который использует N2CMS (tinyIoC), не знает ни о каких зависимостях моих контроллеров. Поэтому, когда любой из моих контроллеров создается, я получаю сообщение об ошибке, похожее на:
TinyIoCResolutionException: невозможно разрешить тип: NLog.Logger (где NLogger - это зависимость от создаваемого контроллера)
Мой сайт использует Ninject; Я разработал, что N2CMS будет использовать Service Locator (реализацию N2.Engine.IServiceContainer), чтобы распространять зависимости.
Кто-нибудь построил что-нибудь подобное?
1 ответ
Я подозреваю, что вы используете Dynamico? Из коробки он разрешает контроллеры из контейнера N2CMS.
Мой первый шаг в настройке проекта N2CMS - изменить фабрику контроллеров так, чтобы она возвращала контроллер из моего собственного контейнера. Сервисы N2 никогда не внедряются в мои контроллеры или уровень бизнес-логики.
Используйте N2.Context для доступа ко всему, что вам нужно.