Ich erhalte den Fehler unten, wenn ich meinen WCF-Dienst anrufe. Was fehlt mir hier?
%Vor%Von dem, was ich erhalte, haben Sie eine WCF-Funktion, die einen Parameter namens "myEntity" hat. Ich gehe davon aus, dass der Typ von myEntity eine benutzerdefinierte Klasse ist und mit dem DataContract-Attribut versehen ist, wie es sein sollte. Ich nehme auch an, dass der Typ von myEntity ein Mitgliedsfeld hat, das ein Zeichenfolgenarray ist. Nehmen wir an, dass all dies wahr ist (auch hier wäre es sehr hilfreich, wenn Sie Ihren Code veröffentlichen könnten).
Normalerweise werden String-Arrays, d. h. string [], nur gut serialisiert. Aber in einigen Fällen (siehe hier und hier ), müssen Sie es möglicherweise zur Liste der bekannten Typen hinzufügen, damit WCF alles korrekt serialisiert .
Fügen Sie dazu Folgendes hinzu:
%Vor%Sie haben den Code nicht veröffentlicht, daher basiert meine Antwort auf der Annahme, dass Sie eine Klasse myEntity haben, die Sie zu serialisieren versuchen. Verwenden Sie ein KnownTypeAttribute für die Klasse
z.B.
%Vor%Sie können auf den folgenden MSDN-Link verweisen: KnownTypeAttribute
Ja. Wie im vorherigen Beitrag erläutert, tritt das Problem auf, wenn Sie ein Array eines Typs übergeben (der als DataContract definiert ist). Sie müssen das Array dieser Klasse als separaten Typ definieren und als Datenkontrakt markieren.
Arbeite nicht
%Vor%'
Was funktioniert:
%Vor%In meinem Fall nach dem Hinzufügen des Attributs [Serializable] zur MyEntity-Klasse. Und dann kam das Problem mit der Serialisierung des Rollen-String-Arrays.
%Vor%[KnownType (typeof (string []))] funktionierte wie Magie!
Tags und Links wcf web-services