我有一个对象数组,我想将其序列化为 XML。这些对象被注释为设置 XML 节点名称,但我想知道如何设置 XML 根节点的名称。
代码如下所示:
// create list of items
List<ListItem> list = new List<ListItem>();
list.Add(new ListItem("A1", new Location(1, 2)));
list.Add(new ListItem("A2", new Location(2, 3)));
list.Add(new ListItem("A3", new Location(3, 4)));
list.Add(new ListItem("A4<&xyz>", new Location()));
// serialise
XmlSerializer ser = new XmlSerializer(typeof(ListItem[]));
FileStream os = new FileStream(@"d:\temp\seri.xml", FileMode.Create);
ser.Serialize(os, list.ToArray());
os.Close();
输出如下所示:
<?xml version="1.0"?>
<ArrayOfPlace xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Place>
<Placename>A1</Placename>
<Location>
<Lat>1</Lat>
<Long>2</Long>
</Location>
</Place>
<Place>
...
ListItem 已使用 XmlElement 注释重命名为 Place,但是如何设置根节点的名称来重命名 < strong>'ArrayOfPlace' 节点?
最佳答案
试试这个:
XmlSerializer ser = new XmlSerializer(
typeof(ListItem[]),
new XmlRootAttribute("CustomRootName"));
关于.net - XmlSerializing数组时如何设置根节点名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1624540/