【发布时间】:2010-11-29 00:58:33
【问题描述】:
我有以下课程,我正在尝试对 XML 文件进行序列化和反序列化:
public class cUrlData
{
public string ProgramName {get;set;}
public string ExeName { get; set; }
public string Category { get; set; }
public string URL { get; set; }
public cUrlData()
{
}
public void Add(string ProgramName, string ExeName, string Category, string ProgramURL)
{
this.ProgramName = ProgramName;
this.ExeName = ExeName;
this.URL = ProgramURL;
this.Category = Category;
}
}
我一直在使用以下代码进行测试:
public List<cUrlData> SoftwareData = new List<cUrlData>();
cUrlData urlData;
cXml xml;
public frmUpdater()
{
InitializeComponent();
xml = new cXml("data.xml", ref SoftwareData);
xml.Load(); // NOT WORKING - SO I GENERATE MY OWN DATA BELOW
// Set up some test data to work with
urlData = new cUrlData();
urlData.Add("Program1",
"Program1.exe",
"myDownloads",
"http://www.source.com/program1.exe");
SoftwareData.Add(urlData);
urlData = new cUrlData();
urlData.Add("Program2",
"Program2.exe",
"myDownloads",
"http://www.source.com/program2.exe");
SoftwareData.Add(urlData);
urlData = new cUrlData();
urlData.Add("Program3",
"Program3.exe",
"myDownloads",
"http://www.source.com/program3.exe");
SoftwareData.Add(urlData);
}
我遇到的问题是找到一种可靠的方法将列表与 XML 文件相互转换。我目前遍历类列表并逐个节点手动创建 xml 文件,并在将其从 xml 文件读取到类时执行相同操作,但这很容易出错。我已尝试获取以下代码来读取文件,但无济于事,我将不胜感激,因为我确信这是一个编码问题!
public void Load() {
XmlSerializer serializer = new XmlSerializer(typeof(List<cUrlData>));
using (XmlReader reader = XmlReader.Create("data.xml"))
{
cUrlData myXmlClass = (cUrlData)serializer.Deserialize(reader);
}
}
加载后,我想尝试让它写回 xml 文件。同样,与上面的代码类似。
谢谢
【问题讨论】:
-
您使用的是 XmlSerializer 但没有使用任何 XML 属性,但话说回来,它们可能不再需要了,我忘记了他们是否像使用 JSON 序列化一样将其从框架中取出...... .
标签: c# .net xml xml-serialization