如何防止out-parameter结束WCF Web服务中的返回参数?

时间:2012-07-02 13:44:42

标签: c# wcf web-services c#-4.0 wcf-client

如果我的合同如下:

[OperationContract]
void DoSomething(int id, out string moreInfo);

这最终看起来像:

string DoSomething(int id);

导入Web服务引用时。是否有可能影响参数顺序的自动转换?在函数签名的开头找到所有out参数已经令人惊讶了,但这仍然可行,但我们希望void-methods继续作为void-methods。或者这是SOAP限制吗?

1 个答案:

答案 0 :(得分:4)

它似乎基于WSDL限制: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/48b5992f-f7bd-4b67-8299-514d1780fa9a

  

WSDL不显示原始方法签名;相反,它表明   输入参数作为一组,输出参数作为另一组   基。

无法从out参数中分离返回值的限制在WSDL中。但这意味着我认为void方法的限制将成为svcutil.exe的一部分。没有理由不能在svcutil上切换不将第一个输出移动到返回值,但这将是对ms连接上的功能的请求。

如果你的问题是一致的,你可以返回一个简单的状态int或bool而不是void,但如果你已经有很多方法,我肯定这不是一个完美的答案。

相关问题