gpt4 book ai didi

c# - WCF 消息协定自定义序列化

转载 作者:太空宇宙 更新时间:2023-11-03 12:16:49 25 4
gpt4 key购买 nike

首先,抱歉我的英语不好。

对于第 3 方 Web 服务,尽管未选中“始终生成服务契约(Contract)”,但 Visual Studio“添加服务引用”正在生成代理类作为消息契约(Contract)。对我来说这不是问题,除非我不知道如何防止长字段在其值等于 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 时防止它被序列化吗?

提前致谢。

最佳答案

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

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

关于c# - WCF 消息协定自定义序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49367107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com