与ninject中的多个实现的接口

时间:2013-10-01 14:59:41

标签: c# dependency-injection ninject

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

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需要制作人,ConsumerChannel需要FaultProducer。我只能将IProducer绑定到一个实现。在Windsor中,我可以使用命名绑定和Dependency.OnComponent执行此操作,但我在Ninject中找不到类似的功能。有没有办法在Ninject中注入特定的依赖项?

1 个答案:

答案 0 :(得分:5)

对Ninject使用named bindings

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

public TradePublisher([Named("FaultProducer")] IProducer producer)
    //...
}
相关问题