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 に答える