星空网 > 软件开发 > ASP.net

让.NET xml序列化支持Nullable

.NET序列化,关于契约类的生成我们都是通过xsd.exe,对于值类型的可空判断是通过声明同名+Specified的bool属性来判断,比如:

  public class Person  {    public string Name    {      get;      set;    }    public int Age    {      get;      set;    }    public bool AgeSpecified    {      get;      set;    }  }

这样,当想生成Age节点,除了给Age赋值外还需要设置AgeSpecified=true。而反序列化时,则可以通过判断AgeSpecified是否为true来知道Age属性是否有被赋值。嗯,虽然麻烦点,但能够解决问题,挺不错,而且这还是xsd给我们生成的,省事。但如果你希望Person类即要支持

有人该问了,为何不直接定义Age为可空类型?您可以试试,序列化出来的

<??><Person ="http://www.w3.org/2001/ ="http://www.w3.org/2001/> <Name>name</Name> <Age xsi:nil="true" /></Person>

Age属性我是没有赋值的,但却生成了Age xsi。。。这样一个奇葩节点。

 

今天网上闲逛,偶然发现竟然可以这样:

  public class Person  {    public string Name    {      get;      set;    }    public int? Age    {      get;      set;    }    public bool ShouldSerializeAge()    {      return Age != null;    }  }

竟然有ShouldSerialize特性,如果能够集成进xsd就好了,不然为了支持nullable,所有值类型都这么搞一次也挺累的。

https://msdn.microsoft.com/en-us/library/53b8022e(v=vs.110).aspx

 




原标题:让.NET xml序列化支持Nullable

关键词:.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

怎么下载海外抖音TikTok:https://www.kjdsnews.com/a/664490.html
POD爆款订单多到接不完!TikTok+独立站POD模式或成最佳组合:https://www.kjdsnews.com/a/664491.html
亚马逊选品10步走之第三步:如何做竞品分析:https://www.kjdsnews.com/a/664492.html
顶级大卖54个店铺被封,平台卖家的出路究竟在哪?:https://www.kjdsnews.com/a/665482.html
沙特独立站卖家请注意!商务部再次重申此规定!:https://www.kjdsnews.com/a/665483.html
该提交黑五Prime专享折扣了!附亚马逊Prime专享折扣的创建方法!:https://www.kjdsnews.com/a/665484.html
十月北方旅游最佳去处?:https://www.vstour.cn/a/365184.html
缅甸电子签证口岸 缅甸电子签证在线申请:https://www.vstour.cn/a/365185.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流