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%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.
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:
Wenn die Parameter des Konstruktors Standardwerte haben und Sie diese verwenden möchten, können Sie Folgendes tun:
%Vor%Tags und Links c# reflection enums