gpt4 book ai didi

c# - 将 XML 属性注入(inject)序列化

转载 作者:太空宇宙 更新时间:2023-11-03 11:53:56 24 4
gpt4 key购买 nike

我正在尝试序列化一个数组并想将一个属性附加到该数组。比如我想要的输出是:

<ArrayOfThingie version="1.0">
<Thingie>
<name>one</name>
</Thingie>
<Thingie>
<name>two</name>
</Thingie>
</ArrayOfThingie>

这只是一个原始数组,所以我不想为数组本身定义属性,只是在它的序列化中。有没有办法将属性注入(inject)序列化?

最佳答案

您可以为 ArrayOfThingie 创建一个仅用于序列化的包装器:

    public class Thingie
{
[XmlElement("name")]
public string Name { get; set; }
}

[XmlRoot]
public class ArrayOfThingie
{
[XmlAttribute("version")]
public string Version { get; set; }
[XmlElement("Thingie")]
public Thingie[] Thingies { get; set; }
}

static void Main(string[] args)
{
Thingie[] thingies = new[] { new Thingie { Name = "one" }, new Thingie { Name = "two" } };

ArrayOfThingie at = new ArrayOfThingie { Thingies = thingies, Version = "1.0" };
XmlSerializer serializer = new XmlSerializer(typeof(ArrayOfThingie));
StringWriter writer = new StringWriter();
serializer.Serialize(writer, at);

Console.WriteLine(writer.ToString());
}

关于c# - 将 XML 属性注入(inject)序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1234150/

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