Ich schreibe einen C# -Client, der einen in Java geschriebenen Webdienst aufruft (von einer anderen Person). Ich habe eine Webreferenz zu meinem Client hinzugefügt und kann Methoden im Webservice aufrufen.C# -Client schreiben, um einen Java-Webdienst zu verwenden, der ein Array von Objekten zurückgibt
Der Dienst wurde geändert, um ein Array von Objekten zurückzugeben, und der Client analysiert die zurückgegebene SOAP-Nachricht nicht ordnungsgemäß.
MyResponse[] MyFunc(string p)
class MyResponse
{
long id;
string reason;
}
Wenn mein generierten C# Proxy den Webdienst (mit SoapHttpClientProtocol.Invoke) nennt, erwarte ich eine MyResponse [] Array mit einer Länge von 1, dh ein einzelnes Element. Was ich nach dem Invoke-Aufruf erhalte, ist ein Element mit id = 0 und Grund = null, unabhängig davon, was der Dienst tatsächlich zurückgibt. Mit einem Paket-Sniffer kann ich sehen, dass der Dienst eine scheinbar seriöse Nachricht zurückgibt, deren ID und Grund auf Nicht-Null-Werte gesetzt sind.
Gibt es einen Trick, einen C# -Client dazu zu bringen, einen Java-Webdienst aufzurufen, der someobject [] zurückgibt? Ich werde daran arbeiten, wenn nötig, eine gekühlte Demo zu bekommen.
Bearbeiten: Dies ist eine Webreferenz über "Add Web Reference ...". VS 2005, .NET 3.0.
Verwenden Sie "Add Web Reference" (.NET 2.0) oder "Add Service Reference" (.NET 3.0)? –