2

我有一个具有两种不同实现的接口。

public interface IProducer
{
}

public class Producer : IProducer
{
}

public class FaultProducer : IProducer
{
}

我有两个不同的类,它们都将 IProducer 作为依赖项。

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

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

TradePublisher需要一个 Producer 并且ConsumerChannel需要一个FaultProducer. 我只能绑定IProducer到一个实现。在 Windsor 中,我可以使用命名绑定来执行此操作,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 回答