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

如果我的合同如下:

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

这最终看起来像:

 string DoSomething(int id); 

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

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

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

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

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