gpt4 book ai didi

c# - 使用 C# 序列化时自定义显示元素的顺序

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

我有一个类在 C# 项目类中定义如下元素

public class Item
{

public string ShortDesc {get;set;}

[XmlArrayItem(ElementName="category")]
public List<string> categories = new List<string>();
public string SubType{get;set;}
}

在我后面的代码中有这段代码

Item() itm = new Item();
itm.SubType = "Applications";
itm.categories.Add("Category1");
itm.categories.Add("Category2");
itm.categories.Add("Category3");
itm.ShortDesc="Short Description";

当我序列化对象时,我得到了这个 XML 输出

XML:

<subtype>Applications</subtype>
<shortDesc>Short Description</shortDesc>
<categories>
<category>Category1</category>
<category>Category2</category>
<category>Category3</category>
</categories>

但我希望输出按此顺序

<subtype>Applications</subtype>
<categories>
<category>Category1</category>
<category>Category2</category>
<category>Category3</category>
</categories>
<shortDesc>Short Description</shortDesc>

如何以这种方式显示我尝试使用 Order= 但它只需要 XMLELElement

最佳答案

public class Item
{
[XmlElement("shortDesc", Order=2)]
public string ShortDesc { get; set; }

private readonly List<string> categories = new List<string>();
[XmlArray("categories", Order = 3), XmlArrayItem("category")]
public List<string> Categories { get { return categories; } }

[XmlElement("sub-type", Order = 1)]
public string SubType { get; set; }
}

请注意显式 [XmlArray],它允许我们指定 Order=。我还为您将该列表移到了一个属性中(这是常态)。

关于c# - 使用 C# 序列化时自定义显示元素的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4334582/

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