2

2 つの異なる実装を持つインターフェイスがあります。

public interface IProducer
{
}

public class Producer : IProducer
{
}

public class FaultProducer : IProducer
{
}

IProducer を依存関係として使用する 2 つの異なるクラスがあります。

public class ConsumerChannel
{
    public ConsumerChannel(IProducer producer)
    {
    }
}

public class TradePublisher
{
    public TradePublisher(IProducer producer)
    {
    }
}

TradePublisherProducer とConsumerChannelが必要FaultProducerです。IProducer1 つの実装にしかバインドできません。ウィンザーでは、名前付きバインディングでこれを行うことがDependency.OnComponentできましたが、Ninject では同様の機能を見つけることができません。Ninject に特定の依存関係を注入する方法はありますか?

4

1 に答える 1

5

Ninject に名前付きバインディングを使用します。

Bind<IProducer>().To<FaultProducer>().Named("FaultProducer");

public TradePublisher([Named("FaultProducer")] IProducer producer)
    //...
}
于 2013-10-01T15:03:58.203 に答える