Je suis nouveau à ninject, je me demande comment je peux exécuter du code d'initizlisation personnalisé lors de la construction des objets injectés? c'est à dire. J'ai une classe Sword qui implémente IWeapon, mais je veux passer une valeur de point de vie au constructeur de la classe Sword, comment puis-je y parvenir? Ai-je besoin d'écrire mon propre fournisseur?Ninject - initialise des objets
Une question mineure, IKernel kernel = new StandardKernel (nouveau Module1(), nouveau Module2(), ...); Quelle est l'utilisation réelle de plusieurs modules dans le noyau? Je comprends un peu, mais quelqu'un pourrait-il me donner une explication formelle et un cas d'utilisation?
Merci beaucoup!
James
Bonne réponse, Maintenant, que faire si j'ai une classe Warrior utilise cette classe Sword (par IWeapon), par exemple Warrior james = kernel.Get(); Comment puis-je transmettre la valeur du point de vie dans l'objet Sword? –
si je dois exécuter cette commande IWeapon sword1 = kernel.Get (With.Parameters.ConstructorArgument ("hitPoints", 10)); pour obtenir l'objet épée, pourquoi ne puis-je pas lancer IWeapon sowrd1 = new Sword (10); ??? –
Bonnes questions. Pour répondre à votre première question, si vous avez besoin de ce niveau de contrôle, vous devez instancier les instances de Sword à l'aide d'un présentateur. En ce qui concerne votre deuxième question, la puissance de l'injection de dépendance est que vous pouvez découpler votre conception de son implémentation. Si vous voulez toujours une épée, et vous savez que vous voulez toujours une épée, alors vous n'avez probablement pas besoin de DI. – anthony