vorbei an Teil der Konstruktor Parameter zu castle windsor container
Ich habe Konstruktor
Foo(IColor c , int someNumber)
und ich weiß das einige nur während des Laufs die Zeit, und ich möchte zu nennen, wird dieser Konstruktor bei der Lösung und übergeben someNumber
Wert und die IColor
gelöst werden eigenmächtig.
Etwas wie dieses:
container.Resolve<IFoo>(someNumber);
Ist es möglich, zu tun ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, übergeben Sie dem Konstruktor Argumente, die in einer Instanz eines anonymen Typs; die Namen der Eigenschaft entsprechen muss den Konstruktor-parameter-Namen:
Wenn Sie eine ältere version von C# unterstützt keine anonymen Typen (oder auch wenn nicht), Sie können das gleiche tun mit einem Wörterbuch:
Sollten Sie lieber Getippt Fabrik anstelle der Verwendung von container-service-locator. Nur definieren Fabrik-Schnittstelle:
und registrieren Sie es als typisierte Fabrik:
Dann dependency injection zu injizieren, Werk und Verwendung:
Weitere Infos Lesen Windsor Dokumentation
void Destroy(IFoo component)
Methode auf die factory-Schnittstelle für diesen Zweck, oder implementierenIDisposable
in Ihre Komponenten und entsorgen Sie es. Dann wird es veröffentlicht.