嘗試創建以下結構的 XML 檔案:
<Objects>
<ArrayOfObject1>
<Object1>
<Object1>
</ArrayOfObject1>
<ArrayOfObject2>
<Object2>
<Object2>
</ArrayOfObject2>
</Objects>
有什么方法可以使用 XmlSerializer 實作這一點嗎?我知道以下代碼片段可用于生成一個 XML 檔案,該檔案具有 ArrayOfObject1 的根節點和對應于串列中每個物件的元素;我只想將其擴展為具有不同的根節點,以及其中每個物件的陣列。
XmlSerializer serializer = new XmlSerializer(typeof(List<Object1>));
當然,擁有兩個不同的 XML 檔案可能是最佳實踐,但我只是想找出是否有一種可接受/明智的方法可以在一個檔案中表示兩個物件陣列。
謝謝!
uj5u.com熱心網友回復:
嘗試以下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
namespace ConsoleApplication2
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
XmlWriter writer = XmlWriter.Create(FILENAME, settings);
XmlSerializer serializer = new XmlSerializer(typeof(Objects));
Objects objects = new Objects()
{
objects1 = new List<Object1>()
{
new Object1(), new Object1()
},
objects2 = new List<Object2>()
{
new Object2(), new Object2()
}
};
serializer.Serialize(writer, objects);
}
}
public class Objects
{
[XmlArray("ArrayOfObject1")]
[XmlArrayItem("Object1")]
public List<Object1> objects1 { get; set; }
[XmlArray("ArrayOfObject2")]
[XmlArrayItem("Object2")]
public List<Object2> objects2 { get; set; }
}
public class Object1
{
}
public class Object2
{
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/534584.html
