3
我想反序列化一個XML,但是我有很多問題,我正在使用List對象。XML列表的問題<T> C#中的反序列化
的XML如下:
<EntriesSerialize>
<Entries>
<Entry file="myFile"
value="2000" />
<Entry file="myFile"
value="400" />
<Entry file="myFile"
value="200" />
</Entries>
</EntriesSerialize>
我的類別是:
[XmlType("Entry")]
public class Entry
{
public Entry()
{
}
[XmlAttribute("file")]
public string File { get; set; }
[XmlAttribute("value")]
public string Value { get; set; }
}
[XmlType("EntriesSerialize")]
public class EntriesSerialize
{
public EntriesSerialize()
{
EntriesList = new List<Entry>();
}
[XmlElement("Entries")]
public List<Entry> EntriesList { get; set; }
}
,我使用反序列化這個XML的代碼是:
public static T Deserialize<T>(string content)
{
byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(content);
MemoryStream stream = new MemoryStream(byteArray);
StreamReader reader = new StreamReader(stream);
XmlSerializer serializer;
serializer = new XmlSerializer(typeof(T));
T model = (T)serializer.Deserialize(reader);
reader.Close();
return model;
}
的方法我在反序列化中調用的是反序列化(字符串內容),如下所示:
EntriesSerialize temp = Deserialize<EntriesSerialize>(data);
但是,當我使用C#調試器查看temp變量時,發現EntriesList對象中只有一個元素,並且此元素的文件和值屬性爲null。
注意:這些類的序列化按預期工作。