任何人都可以告诉我是否可以使用Ninject注册已创建的类实例,以便每次需要注入时它都会使用此实例?
我想你可以把它称为单身,但我已经创建了实例。所有文档都指向创建类的新实例。
答案 0 :(得分:66)
您可以使用ToConstant
方法获取已存在的实例并将其注册为单例。
var kernel = new StandardKernel();
kernel.Bind<MyClass>().ToConstant(myClassInstance);
如果您想要更复杂的内容,可以使用ToMethod
(您可以使用Func获取实例)与InSingletonScope
var kernel = new StandardKernel();
kernel.Bind<MyClass>().ToMethod(context => myClassInstance).InSingletonScope();