0
我似乎無法弄清以下問題,並試圖儘可能多地使用這裏的可用主題。XML反序列化和值賦值問題
我有以下文檔。
<?xml version="1.0"?>
<Root>
<Data>
<Package>
<GWT_></GWT_>
<ALT_></ALT_>
<SAT__></SAT__>
</Package>
<Package>
<GWT_></GWT_>
<ALT_></ALT_>
<SAT__></SAT__>
</Package>
</Data>
</Root>
我寫了類和一個函數來反序列化它。
類:
[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; }
}
而且功能:
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();
}
}
要開始我得到的錯誤,它不能隱式轉換 '根' 到 '包'。
而且我需要一種方法來分配讀取的值(例如GWT_「value」)來表示標籤。 正如你所看到的,有多個'包'的值,所以我需要一個函數在這些包之間切換。
感謝您的幫助!
工作對我來說,你試過一些串行化(虛擬)的數據,以驗證您有正確的屬性生成的XML? (哎呀,甚至值得做單元測試) – 2012-04-06 10:02:35