Frage

Ich versuche, eine Anwendung zu erstellen, die ich eine Methode zur Laufzeit auf einem beliebigen Webservice (die URL, von denen ich werde auch zur Laufzeit zur Verfügung stellen) angegeben ausführen lassen. Ich habe herausgefunden, wie Type.InvokeMember verwenden, um die willkürliche Methode auszuführen, aber wie kann ich festlegen, um den Webdienst zu verbrauchen, ohne eine Proxy-Klasse zu schaffen.

Ich fand Wie rufe ich eine Webservice ohne eine Web-Referenz? die hilft mir, wenn ich die WSDL bereits habe und nur die URL ändern wird, aber ich möchte in der Lage sein, jede Webservice zu rufen und das Ergebnis zu holen.

Danke.

War es hilfreich?

Lösung

Sie sollten einen Blick auf dynamische Proxy für WCF nehmen (es tut mir leid, aber ich kann einen Link, um es jetzt zu finden scheinen) - es ist eine Bibliothek, die Sie inspizieren Dienste zur Laufzeit können (wenn sie veröffentlichen ihre Metadaten) und auch Methoden aufrufen (keine Notwendigkeit für Metadaten, das zu tun).

Edit: tatsächlich, es scheint, dass es ein Projekt auf Codeplex zu tun genau das: SIF

Andere Tipps

Für WCF, müssen Sie die Proxy-Klasse entweder haben oder die Schnittstelle den Dienst implementiert, so ist es nicht wahrscheinlich, dass Sie es über WCF tun können (WCF endlos erweiterbar ist aber so kann es eine Art und Weise sein.

Sie können immer nur Spin-up ein HttpWebRequest Objekt und machen einen "old-school" Aufruf an den Dienst und analysieren die Ergebnisse selbst.

Es soll möglich sein, Ihren Anruf machen nur mit WebRequest . Sie werden den Körper des Nachricht selbst bilden müssen, aber das ist nicht sehr schwer .

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