gpt4 book ai didi

C# 在序列化/反序列化 XML 时更改列表中项目的元素名称

转载 作者:数据小太阳 更新时间:2023-10-29 01:58:04 24 4
gpt4 key购买 nike

我有一个定义如下的类:

[XmlRoot("ClassName")]
public class ClassName_0
{
//stuff...
}

然后我创建一个 ClassName_0 列表,如下所示:

var myListInstance= new List<ClassName_0>();

这是我用来序列化的代码:

var ser = new XmlSerializer(typeof(List<ClassName_0>));
ser.Serialize(aWriterStream, myListInstance);

这是我用来反序列化的代码:

var ser = new XmlSerializer(typeof(List<ClassName_0>));
var wrapper = ser.Deserialize(new StringReader(xml));

如果我将它序列化为 xml,生成的 xml 如下所示:

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfClassName_0 xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ClassName_0>
<stuff></stuff>
</ClassName_0>
<ClassName_0>
<stuff></stuff>
</ClassName_0>
</ArrayOfClassName_0>

有没有一种方法可以序列化并能够将以下内容从 ClassName_0 列表反序列化?

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfClassName xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ClassName>
<stuff></stuff>
</ClassName>
<ClassName>
<stuff></stuff>
</ClassName>
</ArrayOfClassName>

谢谢!

最佳答案

在您的示例中,ClassName 不是真正的根。真正的根是你的列表。所以你必须将列表标记为根元素。您的类只是一个 XmlElement。

关于C# 在序列化/反序列化 XML 时更改列表中项目的元素名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17741000/

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