0

很常见的场景:

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

我真的想知道是否可以创建解决所有从 A 继承的 Ninject 绑定,如下所示:

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

这当然只适用于类型 A 的请求。对 B 和 C 的请求以默认方式处理。

提前致谢

4

1 回答 1

2

如果可以添加ninject.extensions.conventions,您可以像这样动态绑定它们:

kernel.Bind(x => x
    .FromThisAssembly()
    .SelectAllClasses()
    .InheritedFrom<A>()
    .BindBase()
    .Configure(c => c.InTransientScope()));
于 2012-11-23T09:13:36.463 回答