我正在编写一个C#客户端,它调用由Java(由另一个人)编写的Web服务。我已经为我的客户添加了一个Web引用,并且我可以在Web服务中调用方法。编写C#客户端以使用返回对象数组的Java Web服务
服务被更改为返回一个对象数组,客户端没有正确解析返回的SOAP消息。
MyResponse[] MyFunc(string p)
class MyResponse
{
long id;
string reason;
}
当我的生成的C#代理调用web服务(使用SoapHttpClientProtocol.Invoke),我期待具有1长度的MyResponse []数组,即一个单一的元件。无论服务实际返回什么,Invoke调用后的内容都是id = 0和reason = null的元素。使用数据包嗅探器,我可以看到服务正在返回看起来是合法的soap消息,id和理由设置为非空值。
是否有一些技巧让C#客户端调用返回someobject []的Java Web服务?如有必要,我将努力获得一个消毒过的演示。
编辑:这是通过“添加Web引用...”的Web引用。 VS 2005,.NET 3.0。
您是使用“添加Web引用”(.NET 2.0)还是“添加服务引用”(.NET 3.0)? – 2008-09-15 17:19:43