gpt4 book ai didi

c# - 在 c# 的 xml 序列化中是否有跳过空数组的属性?

转载 作者:数据小太阳 更新时间:2023-10-29 01:44:18 28 4
gpt4 key购买 nike

C# 的 xml 序列化中是否有跳过空数组的属性?这将提高 xml 输出的人类可读性。

最佳答案

那么,您也许可以添加一个 ShouldSerializeFoo() 方法:

using System;
using System.ComponentModel;
using System.Xml.Serialization;
[Serializable]
public class MyEntity
{
public string Key { get; set; }

public string[] Items { get; set; }

[EditorBrowsable(EditorBrowsableState.Never), Browsable(false)]
public bool ShouldSerializeItems()
{
return Items != null && Items.Length > 0;
}
}

static class Program
{
static void Main()
{
MyEntity obj = new MyEntity { Key = "abc", Items = new string[0] };
XmlSerializer ser = new XmlSerializer(typeof(MyEntity));
ser.Serialize(Console.Out, obj);
}
}

ShouldSerialize{name} 模式被识别,并调用该方法以查看是否将属性包含在序列化中。还有一个替代的 {name}Specified 模式,它允许您在反序列化时(通过 setter)检测事物:

[EditorBrowsable(EditorBrowsableState.Never), Browsable(false)]
[XmlIgnore]
public bool ItemsSpecified
{
get { return Items != null && Items.Length > 0; }
set { } // could set the default array here if we want
}

关于c# - 在 c# 的 xml 序列化中是否有跳过空数组的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/380398/

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