考虑以下代码:
[Serializable]
public class Human
{
public string Name { get; set; }
}
然后,
using (MemoryStream ms = new MemoryStream())
{
Human[] mans = new Human[] {
new Human() { Name = "Moim" }
};
XmlSerializer xs = new XmlSerializer(typeof(Human[]));
xs.Serialize(ms, mans);
string s = System.Text.ASCIIEncoding.ASCII.GetString(ms.ToArray());
}
此时,变量 s 将保存一个值,例如,
<?xml version="1.0"?>
<ArrayOfHuman xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Human>
<Name>Moim</Name>
</Human>
</ArrayOfHuman>
现在我需要做的就是将 xml 数组根元素“ArrayOfHuman”更改为“MyFavoriteArrayRootName”之类的内容。我已经看到了 IXmlSerializable 接口(interface),但是,它跳过了根元素名称。任何人都知道如何实现这一目标?
所有评论将不胜感激。
最好的祝福。
最佳答案
尝试
XmlSerializer xs = new XmlSerializer(typeof(Human[]), XmlRootAttribute("MyFavoriteArrayRootName"));
关于c# - 如何更改 Xml 序列化中的数组元素名称?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2646185/