使用应用程序生存期为每个构造函数参数值创建一个类的实例

时间:2012-04-19 20:15:24

标签: c# ninject

我有

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

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

我可以使用像

这样的代码
ISender testSender = 
    Kernel.Get<ISender>(new ConstructorArgument("queueName", "Test"));

使用queueName =“Test”

获取对sender实例的引用

我可以用什么ninject绑定来实现它?

我试过

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

但它不起作用。

1 个答案:

答案 0 :(得分:1)

您应该使用InSingletonScope