.net - XmlSerializing数组时如何设置根节点名称?

标签 .net xml-serialization root

我有一个对象数组,我想将其序列化为 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/

相关文章:

java - 从 Java 对象生成 Spring bean 定义

xml-serialization - 具有 IEnumerable<T> 属性的消息的 NServiceBus Xml 序列化问题

solaris - 如何将 OpenSolaris x86 引导到单用户模式?

c# - 如何使用AutoMapper按类中定义的顺序映射对象?

asp.net - 如何在.NET中正确将大写希腊语单词转换为大写?

c# - 如何在 C# 中将具有 TimeSpan 和通用列表的对象序列化为 XML?

linux - 如何在kali linux 2020.1中以root身份登录?

mysql - 在 MySQL 中删除数据库返回 "Error dropping database errno: 66"

c# - IEnumerable<T> 到 IDictionary<U, IEnumerable<T>>

c# - 在 .NET 中进行字符串模板化的好方法是什么?