myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Netzwerktechnologien » Webservice Funktion komischer Rückgabetyp
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Webservice Funktion komischer Rückgabetyp

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
eto309
myCSharp.de-Mitglied

Dabei seit: 13.04.2019
Beiträge: 2


eto309 ist offline

Webservice Funktion komischer Rückgabetyp

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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:

C#-Code:
  [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

eto309 hat dieses Bild (verkleinerte Version) angehängt:
WebServiceProblem.png
Volle Bildgröße

13.04.2019 18:23 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.253
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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.
13.04.2019 18:45 Beiträge des Benutzers | zu Buddylist hinzufügen
T-Virus T-Virus ist männlich
myCSharp.de-Mitglied

Dabei seit: 17.04.2008
Beiträge: 1.365
Entwicklungsumgebung: Visual Studio, Codeblocks, Edi
Herkunft: Nordhausen, Nörten-Hardenberg


T-Virus ist offline Füge T-Virus Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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/1351...on-type-generic

T-Virus
13.04.2019 20:12 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 7 Monate.
Der letzte Beitrag ist älter als 7 Monate.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 12.12.2019 20:45