加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

wcf – 代理类更改参数的顺序,将param作为第一个输出

发布时间:2020-12-14 05:30:54 所属栏目:Windows 来源:网络整理
导读:我有一个WCF服务,它公开了一个带有以下签名的方法 bool MyMethod(string MyParam1,string MyParam2,out string MyParam3) 但是当我添加服务引用时,代理类会更改参数的顺序,如下所示 bool MyMethod(out string MyParam3,string MyParam1,string MyParam2) 它
我有一个WCF服务,它公开了一个带有以下签名的方法

bool MyMethod(string MyParam1,string MyParam2,out string MyParam3)

但是当我添加服务引用时,代理类会更改参数的顺序,如下所示

bool MyMethod(out string MyParam3,string MyParam1,string MyParam2)

它将param作为第一个参数.知道为什么会这样做,或者可能是因为我做错了什么?

解决方法

没有错,代理也可以使用服务 – 从客户端到服务器的消息不包含out参数,因此MyParam1和MyParam2的顺序是预期的;在输出消息(来自服务器的响应)中,out参数是正文中的唯一参数(除了返回值).

引用首先输出out参数,因为元数据(WSDL)仅包含每个消息(输入/输出)的参数,而不包含操作本身的参数,因此“添加服务引用”必须“猜测”参数的位置 – 并且具有它作为操作中的第一个参数与任何其他位置一样好.

更新:在客户端使用.Net 4.5时不再出现此问题.保持参数顺序.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读