Реализовать 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 для доступа ко всему, что вам нужно.

Другие вопросы по тегам