2012-04-02 2 views
10

Ich lerne, Abhängigkeit Injektion mit Ninject zu verwenden. Die meisten Eigenschaften und Methoden sind ziemlich intuitiv, eine, die mich aber hat, ist Kernel.Inject (instance);Was bedeutet Kernel.Inject (Instanz); eigentlich tun?

Was macht die Inject-Methode eigentlich, da sie nichts zurückgibt? Ich habe mich umgeschaut, aber die Suche nach einer Methode namens inject in einem Dependency-Container ist ein Albtraum, ich kann keine spezifischen Verweise auf die Methode finden.

Antwort

15

Kernel.Inject(instance) wird Abhängigkeiten in ein bereits vorhandenes Objekt injizieren.

Deshalb gibt es void zurück, weil es die Parameterobjektinstanz übernimmt und beginnt, seine Methoden und Eigenschaftensetzer zu untersuchen, die nach dem [Inject] Attribut suchen. Dann ruft es sie mit den aufgelösten Instanzen ihrer Parametertypen auf. (Dies wird Methode oder Eigenschaft Injektion genannt)

Also wenn Contructor Injektion ist nicht genug möglich, können Sie Ihre Abhängigkeiten für eine bestimmte Instanz Kernel.Inject ausfüllen.

Sie können hier mehr über diese lesen: Ninject Injection Patterns

+0

Gute einfache explaination, Prost! – deanvmc

+0

Komödien-Tippfehler "inject decencies". Mit Ninject wird dein Code unanständig! –

+0

@SimonHalsey danke, behoben :) – nemesv