我有以下類,我試圖序列化和和一個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