50

クラスの既に作成されたインスタンスをNinjectに登録して、注入が必要になるたびにこのインスタンスを使用できるかどうか誰か教えてもらえますか?

シングルトンと呼んでもいいと思いますが、インスタンスは既に作成されています。すべてのドキュメントは、クラスの新しいインスタンスの作成を指しています。

4

1 に答える 1

78

ToConstant既存のインスタンスを取得してシングルトンとして登録する方法を使用できます。

var kernel = new StandardKernel();
kernel.Bind<MyClass>().ToConstant(myClassInstance);

より複雑なものが必要な場合は、ToMethod( Func を使用してインスタンスを取得できる) を と組み合わせて使用​​できますInSingletonScope

var kernel = new StandardKernel();
kernel.Bind<MyClass>().ToMethod(context => myClassInstance).InSingletonScope();
于 2013-06-04T12:14:58.987 に答える