gpt4 book ai didi

c# - 是否可以使用 .net 提供的序列化属性将 xml 反序列化为 List 对象?

转载 作者:太空宇宙 更新时间:2023-11-03 22:23:49 26 4
gpt4 key购买 nike

我的 xml 输入看起来像(例如使用的简化版本):

<Student>
<Subject> History </Subject>
<Subject> English </Subject>
</Student>

有没有办法将上面的 xml 反序列化为类如下所示的对象:

[Serializable]
[XmlRoot(ElementName = "Student", Namespace="")]
class Student
{
public Student()
{
Subject = new List<string>();
}

public List<string> Subject {get;set;}

}

请注意,我想弄清楚是否可以在不必实现 IXmlSerializable 接口(interface)的情况下完成此操作,并且我想使用列表来存储 Subject 值(不是我知道的字符串 []有可能是我使用 XmlElement 属性)。

最佳答案

XmlArrayAttribute 修饰 Subject 属性.

[XmlArray]
public List<string> Subject { get; set; }

如果您需要省略 Subject 元素并将 Subject 条目直接放在 Student 下方,您可以简单地使用 [XmlElement] 属性:

[XmlElement]
public List<string> Subject { get; set; }

用 Student 类序列化它会产生类似这样的输出:

<?xml version=\"1.0\" encoding=\"utf-16\"?>
<Student xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">
<Subject>History</Subject>
<Subject>English</Subject>
</Student>"

关于c# - 是否可以使用 .net 提供的序列化属性将 xml 反序列化为 List 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2164128/

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