Quelqu'un peut-il me dire si je peux enregistrer une instance déjà créée d'une classe avec Ninject afin qu'il utilise cette instance à chaque fois qu'il a besoin d'une injection?
Je suppose que vous pouvez l'appeler un singleton, mais j'ai déjà créé l'instance. Toute la documentation pointe vers la création de nouvelles instances d'une classe.
Vous pouvez utiliser la méthode ToConstant
qui prend une instance déjà existante et l'enregistre comme singleton.
var kernel = new StandardKernel();
kernel.Bind<MyClass>().ToConstant(myClassInstance);
Si vous voulez quelque chose de plus complexe, vous pouvez utiliser le ToMethod
(où vous pouvez utiliser un Func pour obtenir votre instance) combiné avec le InSingletonScope
var kernel = new StandardKernel();
kernel.Bind<MyClass>().ToMethod(context => myClassInstance).InSingletonScope();