Ninject:使用Ninject注册一个已经创build的实例?

任何人都可以告诉我,如果我可以注册一个已经创build的Ninject类的实例,以便它将使用这个实例,每次它需要注入?

我想你可以称之为单身,但我已经创build了实例。 所有文档都指向创build一个类的新实例。

您可以使用ToConstant方法,该方法使用已存在的实例并将其注册为单例。

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

如果你想要更复杂的东西,你可以使用ToMethod (你可以使用Func来获得你的实例)和InSingletonScope

 var kernel = new StandardKernel(); kernel.Bind<MyClass>().ToMethod(context => myClassInstance).InSingletonScope();