Ich kann nicht scheinen, das folgende herauszufinden, und ich habe versucht, die verfügbaren Themen hier so viel zu nutzen.XML Deserialisierung und Wert Zuordnung Problem
Ich habe das folgende Dokument.
<?xml version="1.0"?>
<Root>
<Data>
<Package>
<GWT_></GWT_>
<ALT_></ALT_>
<SAT__></SAT__>
</Package>
<Package>
<GWT_></GWT_>
<ALT_></ALT_>
<SAT__></SAT__>
</Package>
</Data>
</Root>
Ich schrieb Klassen und eine Funktion, um alles zu deserialisieren.
Klassen:
[Serializable()]
public class Package
{
[System.Xml.Serialization.XmlElement("GWT_")]
public string GWT_ { get; set; }
[System.Xml.Serialization.XmlElement("ALT_")]
public string ALT_ { get; set; }
[System.Xml.Serialization.XmlElement("SAT__")]
public string SAT__ { get; set; }
}
[Serializable()]
[System.Xml.Serialization.XmlRoot("Root")]
public class Root
{
[System.Xml.Serialization.XmlArray("Data")]
[System.Xml.Serialization.XmlArrayItem("Package", typeof(Package))]
public Package[] Package { get; set; }
}
Und die Funktion:
private void dataReportToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog openData = new OpenFileDialog();
openData.Filter = "Eta file|Data_*.dat
if (DialogResult.OK == openData.ShowDialog())
{
Package package = null;
string path = openData.FileName;
XmlSeriallizerSerializer(typeof(Root));
StreamReader reader = new StreamReader(path);
package = (Root)serializer.Deserialize(reader);
reader.Close();
}
}
starten ich den Fehler, dass sie nicht implizit 'Root' auf 'Paket' umwandeln kann.
Und ich brauche eine Möglichkeit, die Werte, die gelesen werden (z. B. GWT_ "Wert") zuzuweisen, sagen wir ein Etikett. Wie Sie sehen können, gibt es mehrere "Pakete" von Werten, also brauche ich eine Funktion, um zwischen diesen Paketen hin- und herzuschalten.
Danke für jede Hilfe!
mit Haben Sie einige (Dummy) Daten versucht, Serialisierung, um zu überprüfen, dass Sie das Recht haben Attribute, die XML zu generieren? (Verdammt, es lohnt sich sogar, dies als Unit Test zu machen) –