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

asp.net – DataMember Emit默认值

发布时间:2020-12-16 06:45:30 所属栏目:asp.Net 来源:网络整理
导读:我有一个可以接受一个字符串的.Net Web服务功能. 然后该函数将该字符串序列化为JSON,但我只想序列化它,如果它的值不是“”. 我找到了这些说明: http://msdn.microsoft.com/en-us/library/aa347792.aspx [DataContract]public class MyClass{ [DataMember (E
我有一个可以接受一个字符串的.Net Web服务功能.

然后该函数将该字符串序列化为JSON,但我只想序列化它,如果它的值不是“”.

我找到了这些说明:

http://msdn.microsoft.com/en-us/library/aa347792.aspx

[DataContract]
public class MyClass
{
   [DataMember (EmitDefaultValue=false)]
   public string myValue = ""
}

不幸的是,我无法隐藏序列化中的myValue,因为“”不是字符串的.Net默认值(这有多么愚蠢!)

两种选择之一

>在Web服务上有某种属性将“”设置为null
>在课堂上有一些条件

我更喜欢第一,因为它使代码更清晰,但意见会很好.

谢谢

解决方法

您可以使用 DefaultValueAttribute类显式设置默认值(用于序列化):

[DataContract]
public class MyClass
{
    [DataMember (EmitDefaultValue=false)]
    [DefaultValue("")]
    public string myValue = ""
}

(编辑:李大同)

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

    推荐文章
      热点阅读