Привязка к методу <T>с нинъектом - PullRequest
0 голосов
/ 01 октября 2018

Мы определяем реализации наших сервисов во внешнем XML-файле конфигурации.У нас есть имя службы, класс для создания экземпляра, сборка, содержащая класс.Мы переходим с кода Spring AOP.

Для простых сервисов он работает без зуда с kernel.Bind().To().Мы загружаем сборку, создаем экземпляр, возвращаем его в To().

Однако некоторые службы наследуются от другого класса, например:

  internal abstract Bar<T>: EntityBo<T> where T : IAddress
  {
     protected Bar(IAddress adr)
     {
     }
  }

  internal Foo:Bar<ILocalAddress>, ILocalAddressService {
  }

Когда я пытаюсь получить ILocalAddressService из ядра,Я получаю исключение Ninject.ActivationException:

Ошибка активации ILocalAddress Соответствующие привязки недоступны, и тип не является самосвязываемым.Путь активации:
2) Внедрение зависимости ILocalAddress в параметр adr конструктора типа Foo 1) Запрос на ILocalAddressService

Ядро находится в другом проекте и не знает оинтерфейс или его реализация.

Как я могу заставить его работать?

...