2

我有

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));

但它不起作用。

4

1 回答 1

1

您应该使用InSingletonScope

于 2012-10-30T08:49:04.027 回答