Reflection - Konstruktor mit Parametern aufrufen

8

Ich lese type von geladenen Baugruppen zum Beispiel:

%Vor%

Wenn der Konstrukteur Parameter hat, kann ich sie lesen:

%Vor%

Ich möchte Konstruktor mit Standard-Parameterwerten aufrufen oder wenn der Parameter enum ist, mit dem ersten Enum-Wert. Wenn es nur einen Parameter gibt und es enum ist, funktioniert es so:

%Vor%

Wie kann ich das tun, wenn es mehr Parameter gibt? Ich muss ein Objekt erstellen, um die Eigenschaft zu lesen:

%Vor%     
Simon 01.12.2016, 15:56
quelle

2 Antworten

5

Nun, Sie können Ihre eigene Factory erstellen und eine Methode schreiben, die die Konstruktoren des Typs mit ihren Standardparametern überprüft:

%Vor%

Und dann können Sie diese Methode verwenden:

%Vor%

P.S. Hier ist ein DotNet-Geigenbeispiel .

  

Aktualisierung:

Der Code wird entsprechend dem Szenario geändert, mit dem Sie arbeiten. Jetzt haben wir zwei Methoden, Eins gibt ein Objekt zurück, und ein anderes kann es in den Typ T umwandeln.

Ich habe auch das DotnetFiddle aktualisiert, bitte überprüfen Sie es.

    
Fabjan 01.12.2016, 17:36
quelle
2

Sie können eine Hilfsmethode erstellen, um den Standardwert eines Typs zu erhalten:

%Vor%

Dann können Sie Standardwerte der Parameter erhalten:

%Vor%

Und rufen Sie ConstructorInfo auf, um die Instanz zu erhalten:

%Vor%

Wenn die Parameter des Konstruktors Standardwerte haben und Sie diese verwenden möchten, können Sie Folgendes tun:

%Vor%     
Arturo Menchaca 01.12.2016 16:17
quelle

Tags und Links