gpt4 book ai didi

c# - WCF "Always generate message contracts"不生成 MessageContract

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

我正在导入一个 WSDL 作为服务定义(入站到我的服务),无论出于何种原因,客户端正在格式化请求,使得 WCF 无法在代理类没有 MessageContract 装饰的情况下反序列化它.

我已经通过在主容器类上添加 MessageContract 属性让它以这种方式工作,这很好,因为 WCF 将它们构建为部分类,这意味着我可以装饰我的部分并离开单独生成的部分。但是,为了正确反序列化主容器类上的属性,我必须使用指定命名空间的 MessageBodyMember 属性来装饰它们。

这显然是一件坏事®,因为这意味着每次我从 WSDL 重新生成时,我都将失去从客户端接收消息的能力。我已经在服务引用配置上设置了“始终生成消息契约(Contract)”,但这似乎是一个谎言 - 不会生成消息契约(Contract),无论我是否让我的部分类装饰有 MessageContract还是不是。

有什么方法可以强制 WCF 生成这些 MessageContract

编辑

不确定是否中肯,但是svcutil在生成代理类的时候,用

装饰了属性
[XmlElement(Order=0)]
//Property definition

当我添加 MessageContract 属性时,服务因消息而中断

Explicit sequencing may not be used on parameters or return values. Please remove Order property from custom attributes.

在成功调用服务之前,我必须从生成的 XmlElement 属性中删除所有 Order 指令。

最佳答案

我发现了类似的东西。似乎我绑定(bind)到的服务正在发出一个响应,其中的字段顺序与用于构建引用的 WSDL 不匹配。

关于c# - WCF "Always generate message contracts"不生成 MessageContract,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3721464/

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