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

前端之家收集整理的这篇文章主要介绍了wcf – 代理类更改参数的顺序,将param作为第一个输出前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_1@
我有一个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时不再出现此问题.保持参数顺序.

猜你在找的Windows相关文章