Wie gebe ich einen parameter an den Konstruktor mit Einfachen Injektor?
Macht Einfach Injektor ermöglichen die übergabe von Parametern an den Konstruktor, wenn Sie das Problem beheben? Ich würde gerne wissen, ob diese beiden frameworks zu tun, was die Einheit ist ResolverOverride oder DependencyOverride beide tun.
InformationsquelleAutor der Frage Ray | 2014-02-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich vermute, dass diese Frage über den übergang der primitiven Werte an den Konstruktor zu der Zeit der service ist wirklich behoben.
Lassen Sie uns eine einfache test-Klasse:
Die Klasse "Foo nimmt einem string-argument, wir würden gerne liefern, wenn die Lösung der "ifoo") vom service.
Wenn wir wollen, zu können, erstellen Sie neue Instanzen der Klasse " Foo ohne Verwendung der container direkt an, wir können einfach injizieren einer Funktion delegieren.
Die "Zusammensetzung root" sieht nun wie folgt aus:
Wenn die Frage über die übergabe eines "statischen" primitiven Wert an den contructor, das geschieht einfach durch die Registrierung einer factory delegieren, wie dies.
Der Unterschied ist, dass dieser Ansatz nicht, lassen Sie Sie übergeben einen Wert, beheben Zeit. Der Wert ist statisch bei der Registrierung angegebenen Zeit.
InformationsquelleAutor der Antwort seesharper
Wahrscheinlich die einfachste option, mit Einfache Injektor ist die Registrierung mit einem Delegierten
Sich um eine erweiterte option für die Injektion primitive Abhängigkeiten detaillierte hier
InformationsquelleAutor der Antwort qujck
Den oben funktionieren, wenn Ihr Konstruktor hat keine weiteren Abhängigkeiten (oder Sie lösen diese Abhängigkeiten manuell). Wenn Sie müssen das Szenario unten, wenn es runterfällt:
Nun haben Sie nicht nur manuell injizieren Sie die Zeichenfolge, sondern auch
Foo
. So, jetzt Ihr nicht mit Abhängigkeit Injektion an alle (wirklich). Auch Einfache Injektor Zustand:Meiner Lesart ist, dass Sie sagen "Tu das nicht".
Extensibillity Punkte
Eine weitere option ist die Verwendung "Extensibillity Punkte" für dieses Szenario.
Um dies zu tun, müssen Sie Ihre abstrakten hard-codierte Elemente aus der injizierten Elemente:
Können Sie jetzt injizieren Sie Ihr dependanices und Ihre hardcoded Elemente:
Wenn Sie nun mit einer weiteren Abhängigkeit, der Injektion funktioniert nun ohne update der config, d.h. dein code ist schön entkoppelt noch:
InformationsquelleAutor der Antwort Liam