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 = ""
}

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....