を使用してプロパティを注入しようとしていますninject
。以下のモジュールの 2 つのバインディングを考えると、が に注入されるninject
と予想されます。ただし、注入される型は考慮されていないようで、ターゲットの宣言型 (この場合はプロパティ) のみが考慮されます。ConcreteDependency
B
WhenInjectedInto
私が期待した動作を達成する方法はありますか?
static void Main(string[] args)
{
var kernel = new StandardKernel(new TestModule());
var b = kernel.Get<B>();
var c = kernel.Get<C>();
}
class TestModule : NinjectModule
{
public override void Load()
{
Bind<IDependency>().To<EmptyDependency>();
Bind<IDependency>().To<ConcreteDependency>().WhenInjectedInto<B>();
}
}
abstract class A
{
[Inject]
public IDependency Dependency { get; set; }
}
class B : A {}
class C : A {}
interface IDependency {}
class EmptyDependency : IDependency { }
class ConcreteDependency : IDependency { }