我有

class Sender : ISender
{
    public Sender(string queueName)
    { ...
    }
}


我只需要具有给定queueName的Sender类的一个实例。该实例应该是相同的,并且在应用程序运行时不会被丢弃。

我可以使用类似的代码

ISender testSender =
    Kernel.Get<ISender>(new ConstructorArgument("queueName", "Test"));


使用queueName =“ Test”获得对发件人实例的引用

我可以使用哪种ninject绑定来实现此目的?

我试过了

Kernel.Bind<ISender>().To<BufferedMessageSender>()
    .InScope(c =>
      c.Parameters.FirstOrDefault(p => p.Name == "queueName").GetValue(c, null));


但它不起作用。

最佳答案

您应该使用InSingletonScope

10-04 15:13