gpt4 book ai didi

c# - 在 ninject 中与多个实现接口(interface)

转载 作者:行者123 更新时间:2023-12-02 04:49:38 24 4
gpt4 key购买 nike

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

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

最佳答案

使用named bindings对于 Ninject:

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

public TradePublisher([Named("FaultProducer")] IProducer producer)
//...
}

关于c# - 在 ninject 中与多个实现接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19119591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com