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,我都不希望再次更新映射。。。