gpt4 book ai didi

c# - 是否可以将属性添加到序列化集合中?

转载 作者:行者123 更新时间:2023-11-30 22:03:09 25 4
gpt4 key购买 nike

有没有办法将元素和属性添加到序列化的集合子类中?

这是一个例子,给定以下类:

[XmlRoot("MyTs")]
public class MyCollection : HashSet<MyT>
{
[XmlAttribute]
public string Name { get; set; }

//[XmlElement]
public string Description { get; set; }
}

序列化的 XML 不包含附加元素和属性。有没有办法添加它,仍然使用序列化类作为 HashSet 子类?

对于上面的示例,我需要以下 XML:

<?xml>
<MyTs name="name">
<MyT/>
<MyT/>
<MyT/>
<Description>Some long verbal rubbish</Description>
</MyTs>

最佳答案

对于 XmlSerializer,某些东西要么是一个集合xor 一个数据对象。两者都不是。

但是,您可以:

[XmlRoot("MyTs")]
public class MyRoot
{
[XmlAttribute]
public string Name { get; set; }

//[XmlElement]
public string Description { get; set; }

private readonly HashSet<MyT> items = new HashSet<MyT>();
[XmlElement("MyT")]
public HashSet<MyT> Items {get { return items;}}
}

它将具有您想要的 xml 结构。

关于c# - 是否可以将属性添加到序列化集合中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26250958/

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