gpt4 book ai didi

c# - 更改用于 XML 序列化的 XmlElement 名称

转载 作者:可可西里 更新时间:2023-11-01 08:14:37 24 4
gpt4 key购买 nike

我们有以下代码:

[Serializable]
public class Class1
{
[XmlElement("description")]
public string Description { get; set; }
}
class Program
{
static void Main(string[] args)
{
var list = new List<Class1> {new Class1() {Description = "Desc1"}, new Class1() {Description = "Desc2"}};
var serializer = new XmlSerializer(typeof(List<Class1>), new XmlRootAttribute("root"));
var ms = new MemoryStream();
serializer.Serialize(ms, list);
ms.Position = 0;
var result = new StreamReader(ms).ReadToEnd();
}
}

执行后我们将在'result'变量中有以下内容:

<?xml version="1.0"?>
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Class1>
<description>Desc1</description>
</Class1>
<Class1>
<description>Desc2</description>
</Class1>
</root>

问题是:如何在不更改类名的情况下将 xml 元素名称从“Class1”更改为“Item1”?

最佳答案

您可以使用 XmlTypeAttribute.TypeName为此。

为您尝试这个 Class1 定义

    [XmlType(TypeName = "Item1")]
[Serializable]
public class Class1
{
[XmlElement("description")]
public string Description { get; set; }
}

关于c# - 更改用于 XML 序列化的 XmlElement 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6385208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com