Sie können einen SOAP-Umschlag nicht direkt in einen benutzerdefinierten Typ deserialisieren. Sie hätten das XML analysiert und die Daten extrahiert, dann manuell eine Instanz Ihres Typs erstellt oder einen extrem komplexen benutzerdefinierten XML-Serializer erstellt.
Sie können sich Arbeitstage ersparen, wenn Sie diesen Service als Service-Referenz hinzufügen. Sie erhalten einen Proxy-Client, mit dem Sie Anrufe tätigen können, als wäre es irgendein anderes Objekt, aber der Web-Service ruft Sie an.
Klicken Sie in Ihrem Projekt mit der rechten Maustaste auf und wählen Sie Add Service Reference...
. Int der Address
Feld setzen die WSDL-Lage des Service, der dies:
https://ws.epower.amadeus.com/demo.WS/EpowerService.asmx?wsdl
Sie werden wahrscheinlich wollen den Namespace von ServiceReference1 zu EpowerSvc ändern oder was auch immer - nur nicht verwenden einen gepunkteten Namen (dh: Epower .Bedienung).
Jetzt können Sie einen Client erstellen und Methoden aufrufen. Ich bin nicht sicher, welche Methode Sie von Ihrem Beispielcode anrufen, aber ich vermute, es ist SearchFlight
:
EpowerSvc.EpowerServiceSoapClient client = new EpowerSvc.EpowerServiceSoapClient();
SearchFlightCalendarResponseOTA_AirLowFareSearchRS result = client.SearchFlight(someparam, someparam2, someparam3);
//use result
result.Items...
zeigen Sie Ihre SearchFlightResponse Klassencode –
https://ws.epower.amadeus.com/demo. WS/EpowerService.asmx? Op = SearchFlight –