微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net – DataMember Emit默认值

我有一个可以接受一个字符串的.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 = ""
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐