Inheritance Ninject Binding“;所有继承自x";

Inheritance Ninject Binding“;所有继承自x";,inheritance,binding,ninject,contextual-binding,Inheritance,Binding,Ninject,Contextual Binding,非常常见的情况: public class A { } public class B:A {} public class C:A {} 我真的很想知道是否有可能创建Ninject绑定来解析所有继承自的对象,如下所示: Bind<A>().ToMethod(ctx => proxyFactory.CreateProxy(ctx.Request.Service) as A); Bind().ToMethod(ctx=>proxyFactory.CreateProxy(ctx.R

非常常见的情况:

public class A { }
public class B:A {}
public class C:A {}
我真的很想知道是否有可能创建Ninject绑定来解析所有继承自的对象,如下所示:

Bind<A>().ToMethod(ctx => proxyFactory.CreateProxy(ctx.Request.Service) as A);
Bind().ToMethod(ctx=>proxyFactory.CreateProxy(ctx.Request.Service)作为一个函数);
当然,这只适用于类型A的请求。B和C的请求以默认方式处理


提前感谢

如果可以添加,您可以这样动态绑定它们:

kernel.Bind(x => x
    .FromThisAssembly()
    .SelectAllClasses()
    .InheritedFrom<A>()
    .BindBase()
    .Configure(c => c.InTransientScope()));
kernel.Bind(x=>x
.FromThisAssembly()中的
.SelectAllClasses()
.继承自()
.BindBase()
.Configure(c=>c.InTransientScope());

为什么不将
B
C
绑定到
A
并在构造函数中调用
GetAll()
或获取
IEnumerable
?在我的应用程序中,A是一个ViewModelBase类。无论何时添加新的ViewModels,我都不希望再次更新映射。。。