我有以下类,我试图序列化和和一个XML文件反序列化:C#反序列化的XML文件中以形成列表<T>
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序列化... – jcolebrand 2010-11-29 01:56:13