Frage

Ich habe eine Webservice, die ich aus einem Fenster bin Aufruf Forms-Anwendung (beide .NET, die beide in der gleichen Lösung), und ich würde meine webservice gerne von anderer Stelle im Projekt ein benutzerdefiniertes Objekt zurück - es ist ein gemeinsames einwenden, dass sie einen Verweis beide teilen auf, wie es in meiner Lösung in dem dritten Projekt ist. Als ich den Webservice aufrufen, gibt es eine „Person“ Objekt, aber es ist im Namensraum des Webservice, und es ist von einer Proxy-Klasse erstellt, die der Webservice selbst erzeugt. Als solche kann ich es nicht manipulieren und sende es an mein Programm, das auf der Grundlage der gemeinsamen Kopie der Klasse ein „Person“ Objekt erwartet, keine Proxy-Kopie aus dem Webservice-Namespace, und ich erhalte eine Fehlermeldung, wenn ich versuche in der richtigen Klasse Typ CDen.

Wie erzwinge ich den Webservice eine lokale Kopie der Klasse zu verwenden, keine Proxy-Kopie? Ist meine Frage keinen Sinn in diesem Zusammenhang machen? Wenn nicht, werde ich es klären.

Von Bedeutung - ich habe zurückgegriffen werden alle Parameter zu geben ByRef und diese zurückgegebenen Werte mit einer Kopie des Objekts füllen ich bei der Rückkehr erstellen. Das kann nicht der beste Weg, dies zu tun!

War es hilfreich?

Lösung

Wenn Sie svcutil.exe werden mit einem WCF-Client-Proxy zu generieren, können Sie / Verweis auf die Befehlszeile um die Baugruppe zu spezifizieren die gemeinsame Klasse enthält. Svcutil sollte diese Klassendefinition wiederverwenden, anstatt zu generieren neue im Dienst-Proxy-Namensraum.

Auch wird dies nur funktionieren, wenn Ihre gemeinsame Klasse von Wert serializable und übergeben wird (das heißt, sie als Daten Vertrag ausgesetzt ist, nicht als Dienstleistungsvertrag).

scroll top