Frage

Ich habe ein Web-basiertes System, in dem Nutzer sollte durch Eingabe der URL und die notwendigen Parameterwerte zu holen Daten von einem Web-Service in der Lage sein.

Mein Problem ist, irgendwie muß ich die Struktur der Parameter in dem Seifenkörper erforderlich herauszufinden, was notwendigerweise nicht nur eine oder zwei Saiten, kann aber ein ganzer Objektbaum sein.

Die Übertragung ist kein Problem, da es einfach nur XML ist.

Wie mache ich das? Muß ich das gesamte WSDL-Schema lesen und versuchen, das herauszufinden oder gibt es eine einfachere Möglichkeit? Ich weiß, .NET-Code für sie generieren kann, aber ich kann leicht herausfinden, welche Klassen tatsächlich erzeugt worden wären, ohne sie und die Verwendung Reflexion zu erzeugen, um herauszufinden, was es getan hat?

Hat jemand eine Idee?

War es hilfreich?

Lösung

Sie können mit der Servicedescription Klasse, die Ihnen ein Objektmodell repräsentiert Ihre wSDL-Datei gibt.

Wenn Sie eine nützliche Wrapper ausprobieren möchten, chick diese Post .

Andere Tipps

Ich habe es nie getan, aber ich glaube, .net können Sie Proxys dynamisch generieren. Sie sollten dann in der Lage sein, die generierten Klassen zu reflektieren. Ich kann nicht sehen dies gut funktioniert für alles andere als einfache Schnittstellen.

Ich sehe drei Möglichkeiten:

a) Kontakt mit dem Herausgeber des Web-Service und fragen Sie nach Dokumentation und Codebeispielen.

b) Verwenden von Microsoft Visual Studio der Proxy-Klassen zu erzeugen. Dann untersuchen Sie den generierten Code, um herauszufinden, wie man es selbst ohne den generierten Code tun könnte. Sie müssen verstehen, wie die XMLSerializer Klasse, weil dies funktioniert die Klasse, die verwendet wird, um generierten Typen in XML zu konvertieren.

c) Lesen Sie die WSDL-Beschreibung die erwarteten Parameter und deren Format zu verstehen.

Hope, das hilft,

Sly

Versuchen Sie Channel verwenden. Das wird Ihnen dynamisch ein Webservice zur Laufzeit aufrufen und den Proxy-Client erstellen. Ich sah Ihre Kommentare über das Be- und Entladen Baugruppen. Verwenden Sie den Client-Proxy mit Reflexion und wenn Ihr es nur entsorgen getan.

Dieses Problem ist schwierig für den allgemeinen Fall zu lösen. Was passiert, wenn einer der „Parameter“ des Dienstes ist ein XML-Dokument? Was, wenn es ein komplexer Typ? Wie werden Sie einen UI generieren Eintrag von solchen Dingen zu erlauben?

Sie können auch in soapUI aussehen.

BTW, eine neue AppDomain zu schaffen Baugruppen zu laden in ist nicht schwer. In der Tat ist es ziemlich einfach.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top