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