与 nin注入中的多个实现接口

本文关键字:实现 接口 nin 注入 | 更新日期: 2023-09-27 18:33:38

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

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绑定到一个实现。 在温莎,我可以使用命名绑定和Dependency.OnComponent来做到这一点,但我在 Ninject 中找不到类似的能力。 有没有办法在 Ninject 中注入特定的依赖项?

与 nin注入中的多个实现接口

对 Ninject 使用命名绑定:

Bind<IProducer>().To<FaultProducer>().Named("FaultProducer");
public TradePublisher([Named("FaultProducer")] IProducer producer)
    //...
}