首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF“总是生成消息契约”不生成MessageContract

WCF“总是生成消息契约”不生成MessageContract
EN

Stack Overflow用户
提问于 2010-09-15 20:17:44
回答 1查看 5.9K关注 0票数 2

我将WSDL导入为服务定义(入站到我的服务),无论出于什么原因,客户端正在格式化请求,以至于如果没有具有MessageContract装饰的代理类,WCF就无法反序列化它。

我通过在主容器类上添加MessageContract属性来实现这种方式,这很好,因为WCF将这些类构建为部分类,这意味着我可以修饰我的部分,而不需要处理生成的部分。但是,为了正确地反序列化主容器类上的属性,我必须用指定名称空间的MessageBodyMember属性来修饰它们。

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

有任何方法可以强制WCF生成这些MessageContract吗?

编辑

我不确定它是否相关,但是当svcutil生成代理类时,它用

代码语言:javascript
复制
[XmlElement(Order=0)]
//Property definition

当我添加MessageContract属性时,服务会与消息中断

显式排序不能用于参数或返回值。请从自定义属性中删除Order属性。

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

EN

回答 1

Stack Overflow用户

发布于 2018-05-10 14:19:03

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3721464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档