谁能告诉我是否可以使用 Ninject 注册一个已经创建的类实例,以便每次需要注入时都会使用该实例?
我想你可以称它为单例,但我已经创建了实例。所有文档都指向创建类的新实例。
谁能告诉我是否可以使用 Ninject 注册一个已经创建的类实例,以便每次需要注入时都会使用该实例?
我想你可以称它为单例,但我已经创建了实例。所有文档都指向创建类的新实例。
您可以使用ToConstant
采用现有实例并将其注册为单例的方法。
var kernel = new StandardKernel();
kernel.Bind<MyClass>().ToConstant(myClassInstance);
如果你想要更复杂的东西ToMethod
,你可以使用(你可以使用 Func 来获取你的实例)与InSingletonScope
var kernel = new StandardKernel();
kernel.Bind<MyClass>().ToMethod(context => myClassInstance).InSingletonScope();