我正在使用.NET 4框架并制作了WCF工作流服务应用程序。
我想使用我在另一个VS实例中运行的SOAP Web服务(.NET 3.5)。暴露的唯一方法如下:
[WebMethod]
public string Reverse(string input)
{
char[] chars = input.ToCharArray();
Array.Reverse(chars);
return new string(chars);
}
我已使用以下步骤在我的工作流程中添加服务:
但是,当我查看工作流中服务的属性时,无法指定输入参数或存储服务调用结果的位置。
我只能选择指定一些模糊的参数,例如Body:InArgument<ReverseRequestBody
和outBody:OutArgument<ReverseResponseBody
(其中没有一个是字符串)。
以下是描述工作流中服务属性的屏幕截图:
因此我的问题是:
是否可以通过将字符串指定为输入参数(就像要使用它一样)来使用SOAP服务,并将结果分配给工作流变量?
换句话说,如何在上图中使body
和outBody
对应于Web服务的参数和返回值?
答案 0 :(得分:1)
我猜您在这里使用ASMX样式的Web服务而不是WCF服务。
如果是这样,“添加服务参考”可以正常工作,但却无法做到最佳。您应该能够通过将Body
设置为new ReverseRequestBody()
并将输入字符串指定为正文的一部分来使事情变得有效。与输出ReverseResponseBody
的方式相同,因为它将包含结果字符串作为响应主体的一部分。