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()));