【问题标题】:WCF Message Contract custom serializationWCF 消息契约自定义序列化
【发布时间】:2018-03-20 01:38:46
【问题描述】:

首先,对不起我的英语。

对于第 3 方 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;

知道当文件夹=0 时如何防止它被序列化吗?

提前致谢。

【问题讨论】:

    标签: c# wcf


    【解决方案1】:

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

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

    【讨论】:

    • 我不敢相信它这么容易!!我很惭愧。非常感谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    相关资源
    最近更新 更多