Ninject Binding "все наследуется от x"

Довольно обычный сценарий:

public class A { }
public class B:A {}
public class C:A {}

Мне действительно интересно, возможно ли создать Ninject Bindings, которые разрешают все наследования от A, как показано ниже:

Bind<A>().ToMethod(ctx => proxyFactory.CreateProxy(ctx.Request.Service) as A);

Это, конечно, работает только для запросов типа A. Запросы для B и C обрабатываются по умолчанию.

заранее спасибо

1 ответ

Решение

Если есть возможность добавить https://github.com/ninject/ninject.extensions.conventions, вы можете связать их динамически следующим образом:

kernel.Bind(x => x
    .FromThisAssembly()
    .SelectAllClasses()
    .InheritedFrom<A>()
    .BindBase()
    .Configure(c => c.InTransientScope()));
Другие вопросы по тегам