【问题标题】:Serializing Null Values from a REST API Response从 REST API 响应序列化空值
【发布时间】:2010-10-07 23:35:38
【问题描述】:

我最近使用 WCF 来使用 REST API。我使用了一个实体类来序列化 REST XML 响应,这是我遇到问题的部分:

<grid-cell-size type="decimal" nil="true"/>

在我的 C# 类中:

[XmlElement("grid-cell-size")]
public decimal? GridCellSize { get; set; }

但结果是输入字符串的格式不正确。错误消息。

如何更改我的 C# 代码以接受来自 XML 的空值?

【问题讨论】:

  • 我也测试了 [XmlElement("grid-cell-size"), IsNullable = true] 但没有变化!
  • 这也可以,但我不想添加额外的代码! [XmlElement("grid-cell-size")] 保护字符串 GridCellSizeString { get;放; } 私人小数? _gridCellSize;公共小数? GridCellSize { get { if (!String.IsNullOrEmpty(GridCellSizeString)) { return Convert.ToDecimal(GridCellSizeString); } 否则 { 返回空值; } } 设置 { _gridCellSize = Convert.ToDecimal(value); } }
  • 哦!我发现了一个类似的问题! stackoverflow.com/questions/193185/…

标签: xml serialization


【解决方案1】:

尝试添加“xsi”前缀: 而不是

<grid-cell-size type="decimal" nil="true"/> 

使用

<grid-cell-size xsi:type="decimal" xsi:nil="true"/> 

当然 - 不要忘记将命名空间添加到主节点: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"

命名空间声明(如果尚未声明)

【讨论】:

    猜你喜欢
    • 2018-01-25
    • 2020-03-18
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2015-04-20
    相关资源
    最近更新 更多