WCF消息合同自定义序列化

时间:2018-03-19 15:48:49

标签: c# wcf

首先,对不起我的英语。

对于第三方Web服务,Visual Studio"添加服务参考"正在生成代理类作为消息合同,尽管"始终生成服务合同"未经检查。对我来说这不是问题,因为我不知道如果在值等于0时阻止长字段被序列化。

我已尝试创建指定字段或标记为[OnSerializing]的方法。

XSD中的此字段显示为:

<xs:element minOccurs="0" name="folder" type="xs:long"/>

在代理类中,Visual Studio生成:

[MessageBodyMemberAttribute(Namespace="http://foo", Order=1)]
[XmlElementAttribute(Form=XmlSchemaForm.Unqualified)]
public long folder;

当folder = 0时,我怎么能阻止它被序列化?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以手动修改生成的代码并添加可为空的数据类型。

[MessageBodyMemberAttribute(Namespace="http://foo", Order=1)]
[XmlElementAttribute(Form=XmlSchemaForm.Unqualified)]
public long? folder;
相关问题