未提供 C# XML 序列化 int 标记值

标签 c# .net xml serialization

我有一个可以序列化的类。其中一个属性是 int,如果没有为该字段提供值,则标签仍然存在但值为零,因为 int 当然不能为 null。

我遇到的问题是,如果没有提供值,想要接收 xml 的客户根本不想看到标签。他们不想看到值为 0 的标签。

有什么想法吗?

最佳答案

如果你让它成为一个 int? 它会在 null 时被抑制:

public int? Foo { get; set; }

您还可以在对象的 API 上隐藏它:

private int? foo;
public int Foo {
    get { return foo.GetValueOrDefault(); }
    set { foo = value; }
}
public bool ShouldSerializeFoo() { return foo.HasValue;}

其中 ShouldSerialize*XmlSerializer 自动识别的模式

关于未提供 C# XML 序列化 int 标记值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5258178/

相关文章:

c# - StringBuilder Append(string...) 函数的返回值有什么用?

c# - 我可以在触摸屏上渲染带有按钮的 WPF 窗口并读取输入吗?建议?

c# - 当 IDENTITY_INSERT 设置为 OFF 时,无法在表 'ClientDetails' 中为标识列插入显式值

c# - 如何检查列表中是否包含 NEST 中的术语?

c# - Json.Net PopulateObject 附加列表而不是设置值

c# - 对方法的每个输出进行单独的单元测试

c# - 在多线程环境中创建实例

xml - 如何让服务器将内容类型设置为 text/xml

xml - 调试xslt的工具

xml - 在 Eclipse 中查看大型 XML 文件?