.net 将空参数传递给WCF服务

.net 将空参数传递给WCF服务,.net,null,wcf,.net,Null,Wcf,我很好奇WCF服务的非.NET客户端应用程序如何向给定的方法发出信号,表示它不想为给定的参数指定值(使服务假定为默认值)。换句话说,应用程序如何向WCF服务发送null参数信号?如果您使用SOAP(或其他基于XML的标准)与服务通信,则可以使用以下命令提供属性:。非.NET客户端应用程序如何生成nil值取决于您所使用的框架。它可以从SOAP文档中排除该参数(假设HTTP端点是允许的) 确切地说,这是否允许/应该如何做取决于XSD是如何生成的 这些可以由[DataMember]属性的参数控制 如果

我很好奇WCF服务的非.NET客户端应用程序如何向给定的方法发出信号,表示它不想为给定的参数指定值(使服务假定为默认值)。换句话说,应用程序如何向WCF服务发送
null
参数信号?

如果您使用SOAP(或其他基于XML的标准)与服务通信,则可以使用以下命令提供属性:
。非.NET客户端应用程序如何生成
nil
值取决于您所使用的框架。

它可以从SOAP文档中排除该参数(假设HTTP端点是允许的)

确切地说,这是否允许/应该如何做取决于XSD是如何生成的

这些可以由
[DataMember]
属性的参数控制

如果
[DataMember(IsRequired=true)]
则xml将需要包含此元素(我相信minOccurs将为1),并且如果元素可能为nillable(nillable=true,取决于数据类型)


如果
[DataMember(EmitDefaultValue=true)]
则在序列化项目时,如果元素具有其默认值,则将有一个元素。

除了Ethan的答案外,还可以在DataMember属性上设置IsRequired属性:

[DataMember(IsRequired=false)]
当设置为false时,当SOAP消息中缺少该属性时,DataContractSerializer将该属性设置为其默认值(null,对于任何可为null的类型)。有时候,Other语言中的SOAP客户端可能更容易省略属性,而不是发送