Laden...

Webservice Funktion komischer Rückgabetyp

Erstellt von eto309 vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.167 Views
E
eto309 Themenstarter:in
2 Beiträge seit 2019
vor 4 Jahren
Webservice Funktion komischer Rückgabetyp

Guten Tag,

Ich habe folgendes Problem:

Ich habe einen Webservice der schon seit einigen Jahren einwandfrei funktioniert.
Dieser Webservice wird als Referenz für eine Webanwendung(Frontend) eingebunden.

Soweit so gut ... neuerdings hab ich das Problem das 2 Funktionen einen komischen Rückgabe-Typ haben.

Es sollte eine Rückgabe vom Typ Dictionary Of String,String() sein.
Im Webservice selbst ist das auch der Fall:

  [OperationContract]
        Dictionary<string, string> ReinstallComputer(string str_computername, string str_new_macadress);

Im Frontend aber hat sich der Rückgabe-Typ verändert:

(Anhang)

Hat jemand eine Ahnung woran das liegen könnte?

Gruß Eto

16.807 Beiträge seit 2008
vor 4 Jahren

Siehe Collection Types in Data Contracts

Dictionary<string, string> ist kein technologie-neutraler Typ. Eine Übertragung muss in diesem Fall jedoch neutral sein; daher muss er in ein solchen umtypisiert werden.

Aus Listen werden zB. Arrays, denn Arrays sind in quasi allen Sprachen bekannt - Listen aber nicht.
In der WCF Dokumentation in den Basics steht auch, dass man eigentlich .NET-only Typen in Schnittstellen aus Kompatibilitätsgründen besser vermeiden sollte.

Was genau passiert ist, dass ihr den Typ nun geändert habt, können wir von hieraus nicht sagen.
Es ist jedoch ein automatisch generierter Typ, damit der Service neutral konsumierbar ist.
Der Service kennt technologisch die Clients nicht.

Evtl. hilft ServiceKnownTypes - aber WCF ist zu lang bei mir her.

T
2.219 Beiträge seit 2008
vor 4 Jahren

Man kann beim hinzufügen der Referenz auch die Typen wieder in passende .NET Typen mappen lassen.
Hier ein Link bei StackOverflow, wo die Einstellung gezeigt wird.
Dies könnte dein Problem ggf. lösen.
Musst du mal testen.

Hatte ein ähnliches Problem als meine List zu einem Array vom Service gemappt wurde aber im Client nicht wieder zur List.

Link:
https://stackoverflow.com/questions/13513027/wcf-proxy-returning-array-instead-of-list-even-though-collection-type-generic

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.