gpt4 book ai didi

c# - .NET 中的 Xml 序列化

转载 作者:数据小太阳 更新时间:2023-10-29 02:23:09 25 4
gpt4 key购买 nike

我有一个要序列化为 xml 的类。该类如下所示

[XmlRoot("clubMember")]
public class Person
{
[XmlElement("memberName")]
public string Name {get; set;}

[XmlArray("memberPoints")]
[XmlArrayItem("point")]
public List<Int32> ClubPoints {get; set;}
}

当我序列化上面的类时,它会生成如下的xml

<clubMember>
<memberName> xxxx</memberName>
<memberPoints>
<point >xx </point>
<point >xx </point>
</memberPoints>
</clubMember>

我想生成如下所示的 xml:

<clubMember>
<memberName> xxxx</memberName>
<memberPoints>
<point value="xx"/>
<point value="xx"/>
</memberPoints>
</clubMember>

有没有办法在不修改类结构的情况下生成上面提到的xml?我真的很喜欢保持 calss 结构完整,因为它在我的应用程序中无处不在。

最佳答案

我认为 List<int> 不可能做到这一点.你可以定义一个类 Point相反:

[XmlRoot("clubMember")]
public class Person
{
[XmlElement("memberName")]
public string Name { get; set; }

[XmlArray("memberPoints")]
[XmlArrayItem("point")]
public List<Point> ClubPoints { get; set; }
}

public class Point
{
[XmlAttribute("value")]
public int Value { get; set; }
}

class Program
{
static void Main(string[] args)
{
var member = new Person
{
Name = "Name",
ClubPoints = new List<Point>(new[]
{
new Point { Value = 1 },
new Point { Value = 2 },
new Point { Value = 3 }
})
};
var serializer = new XmlSerializer(member.GetType());
serializer.Serialize(Console.Out, member);
}
}

关于c# - .NET 中的 Xml 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1748581/

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