2

私は持っている

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

特定の queueName を持つ Sender クラスのインスタンスが 1 つだけ必要です。このインスタンスは同じである必要があり、アプリケーションの実行中に破棄されません。

次のようなコードを使用できます

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 に答える