So wird ein Objekt vom Typ string dynamisch in ein Objekt vom Typ T umgewandelt

7

Ich habe dieses XML-Dokument

%Vor%

in meinem Code und ich versuche, ein Array von Argumenten zu erstellen, die den Knoten <PublishToPdf> enthalten.

%Vor%

Dies bricht natürlich zur Kompilierzeit ab. Ich kann nicht herausfinden, wie das publishNode.InnerText('false') auf ein laufzeitdefiniertes Objekt des in der XML-Datei angegebenen Typs umgesetzt und in einem Objekt gespeichert wird (wodurch der Typ erhalten bleibt).

    
LolaRun 23.09.2009, 13:03
quelle

3 Antworten

20

Sie können Convert.ChangeType :

verwenden %Vor%     
Thomas Levesque 23.09.2009, 13:14
quelle
2

Sie können nicht genau das tun, was Sie tun möchten. Erstens erlaubt das Schlüsselwort typeof keine dynamische Auswertung zur Laufzeit. Es gibt Mittel, um dies mit Reflektion zu tun, mit Methoden wie Type.GetType(string) , aber die Objekte Type , die von diesen reflektiven Funktionen zurückgegeben werden, können nicht für Operationen wie Casting verwendet werden.

Was Sie tun müssen, ist eine Möglichkeit, Ihren Typ in und aus einer Zeichenfolgendarstellung zu konvertieren. Es gibt keine automatische Konvertierung von einem beliebigen Typ. In Ihrem Beispiel können Sie bool.Parse oder bool.TryParse verwenden, aber diese sind spezifisch für den Typ bool . Es gibt ähnliche Methoden für die meisten primitiven Typen.

    
Adam Robinson 23.09.2009 13:08
quelle
1

Die einfache Lösung, vorausgesetzt, es gibt eine begrenzte Anzahl möglicher Typen;

%Vor%     
Digitalex 23.09.2009 13:17
quelle

Tags und Links