我想用以下模式反序列化 xml 檔案:

我想將資料放入類呼叫Parameter中。但是,如您所見,我事先不知道 <Parameters> ... </Parameters> 之間有多少 <Device> 并且使用這種 DeserializeObjectXMLFile 方法無法進行反序列化。
public static Parameters DeserializeObjectXMLFile(String fileToRead)
{
try
{
Parameters parameters = null;
XmlSerializer xs = new XmlSerializer(typeof(Parameters));
using (StreamReader sr = new StreamReader(fileToRead))
{
parameters = xs.Deserialize(sr) as Parameters;
}
return parameters;
}
catch (Exception ex)
{
Logger.Error(ex);
throw ex;
}
}
我想象List<Device> Devices {get; set}在我的Parameters課堂上有一個屬性,但反序列化不起作用,我不知道我該怎么做。
你能幫我找到解決辦法嗎?
此致。
雷米
uj5u.com熱心網友回復:
使用命名空間中的XmlDocument物件System.Xml來決議 XML 而不是序列化它。
這是一個例子:
var xDoc = new System.Xml.XmlDocument();
xDoc.Load(pathToXml);
foreach (System.Xml.XmlNode node in xDoc.DocumentElement.ChildNodes)
{
var attrName = node.Attributes[0].Name;
var attrValue = node.Attributes[0].Value;
Device dev = new Device(attrName, attrValue);
deviceList.Add(dev);
}
在決議時,您可以創建一個新實體Parameters并將其添加到 List 物件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/526521.html
標籤:C#xml班级反序列化
