Rückgabeobjekt bei einem WebService

03/06/2009 - 14:05 von Daniel | Report spam
Hallo

Ich habe einen WebService mit folgender Methode erstellt:

[WebMethod]
public Customer VerifyCustomer( string customerId, string password ) {...}

Die Customer Klasse liegt in einer eigenen DLL und enthàlt nur Daten, wie
Id, Name, Adresse, etc. Sie ist mit dem Serializable Attribute versehen.

In einer WinForms Applikation habe ich nun mit dem von VS zur Verfügung
gestellten Wizzard einen Dienstverweis auf meinen WebService, sowie eine
Referenz auf die Assembly mit der Customer Klasse erstellt.

VS erzeugt mir nun eine neue Customer Klasse in einem neuen Namensraum der
dem Namen entspricht den ich beim Erstellen des WebService definiert habe.
In der Konfiguration für den WebService habe ich die Option "Typen in allen
Assemblys, auf die verwiesen wird, wiederverwenden" eingeschaltet. Damit
müsste doch meine Customer Klasse aus der eigenstàndigen Assembly als
Rückgabewert der Methode VerifyCustomer verwendet werden, oder liege ich da
komplet falsch?

Kann mir jemand helfen?

Danke im Voraus
Daniel
 

Lesen sie die antworten

#1 Peter Fleischer
04/06/2009 - 08:29 | Warnen spam
"Daniel" schrieb im Newsbeitrag
news:%
Hallo

Ich habe einen WebService mit folgender Methode erstellt:

[WebMethod]
public Customer VerifyCustomer( string customerId, string password ) {...}

Die Customer Klasse liegt in einer eigenen DLL und enthàlt nur Daten, wie
Id, Name, Adresse, etc. Sie ist mit dem Serializable Attribute versehen.

In einer WinForms Applikation habe ich nun mit dem von VS zur Verfügung
gestellten Wizzard einen Dienstverweis auf meinen WebService, sowie eine
Referenz auf die Assembly mit der Customer Klasse erstellt.

VS erzeugt mir nun eine neue Customer Klasse in einem neuen Namensraum der
dem Namen entspricht den ich beim Erstellen des WebService definiert habe.
In der Konfiguration für den WebService habe ich die Option "Typen in
allen Assemblys, auf die verwiesen wird, wiederverwenden" eingeschaltet.
Damit müsste doch meine Customer Klasse aus der eigenstàndigen Assembly
als Rückgabewert der Methode VerifyCustomer verwendet werden, oder liege
ich da komplet falsch?

Kann mir jemand helfen?



Beim Hinzufügen eines WebVerweises wird ein Proxy generiert, der für alle
Methoden und Typen (Klassen) entsprechende Member enthàlt. In deinem Fall
wird beim Aufruf von VerifyCustomer ein Objekt vom Typ Customer
zurückgeliefert. Dabei handelt es sich um ein Objekt vom Typ der vom Proxy
bereitgestellten Costumer-Klasse. Dieser Typ ist nicht identisch mit dem im
WebService genutzten Typ Customer, obwohl sie inhaltlich bezüglich
öffentlicher Member identisch sind.

Du erhöhst Deine Chance, dass Deine Frage überhaupt gelesen und qualifiziert
und schnell beantwortet wird, wenn Du Deinen Realnamen im Absender
einstellst (Vor- und Zuname).

Viele Grüsse
Peter

Ähnliche fragen