Ich Parsing eine XML-Datei mit der XmlReader
Klasse in. NET und ich dachte, es wäre schlau, eine generische Syntaxanalyse-Funktion zu schreiben, um verschiedene Attribute generisch zu lesen. Ich kam mit der folgenden Funktion:Cast Objekt zu T
private static T ReadData<T>(XmlReader reader, string value)
{
reader.MoveToAttribute(value);
object readData = reader.ReadContentAsObject();
return (T)readData;
}
Wie ich zu realisieren begriff, das funktioniert nicht ganz so, wie ich es geplant habe; Es gibt einen Fehler bei primitiven Typen wie int
oder double
aus, da eine Umwandlung von string
in einen numerischen Typ nicht konvertiert werden kann. Gibt es eine Möglichkeit, dass sich meine Funktion in modifizierter Form durchsetzt?
änderte ich die Zeile mit Convert.ChangeType zu: ‚return (T) Convert.ChangeType (readdata, typeof (T), System.Globalization.CultureInfo.InstalledUICulture.NumberFormat), um es auf verschiedenen kulturellen funktioniert Konfigurationen. –
Ausgezeichnete Antwort. Ich habe Tage in Foren gesucht, aber keine richtige Antwort gefunden. Danke Bob. –
Ich denke, Sie können (T) (Objekt) readData – jjxtra