加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – XmlSerializer可以反序列化为Nullable吗?

发布时间:2020-12-16 00:14:47 所属栏目:asp.Net 来源:网络整理
导读:这是 Can XmlSerializer deserialize into a Nullableint?的重复,但我需要一个既不会改变xml文档也不会强迫我实现IXmlSerializable接口的解决方案.我不想实现IXmlSerializable,因为我在 number旁边有许多其他元素.正确反序列化. 我的xml可以包含元素 number
这是 Can XmlSerializer deserialize into a Nullable<int>?的重复,但我需要一个既不会改变xml文档也不会强迫我实现IXmlSerializable接口的解决方案.我不想实现IXmlSerializable,因为我在< number>旁边有许多其他元素.正确反序列化.

我的xml可以包含元素< number> 4< / number>或< number />

<root>
...
either <number>4</number> or <number/>
... [other elements]
</root>

public class root
{
public int? number {get; set;}
...
}

不起作用.

解决方法

您可以使用代理属性.
public class MyType1
{
    // XmlIgnore means it is not directly serialized
    [XmlIgnore]
    public int? number
    {
        get; set;
    }

    // acts as a surrogate for the nullable property
    [XmlElement("number")]
    public string _number_Surrogate
    {
        get
        {
            return (number.HasValue) ? number.ToString() : "";
        }
        set
        {
            if (!value.Equals(""))
            {
                number = Int32.Parse(value);
            }
        }
    }

    public System.DateTime Time
    {
        get; set;
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读