我有一个有两种不同实现的接口。
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中注入特定的依赖项?
答案 0 :(得分:5)
对Ninject使用named bindings:
Bind<IProducer>().To<FaultProducer>().Named("FaultProducer");
public TradePublisher([Named("FaultProducer")] IProducer producer)
//...
}