Warum erhalte ich diese WCF-Fehlermeldung?

8

Ich erhalte den Fehler unten, wenn ich meinen WCF-Dienst anrufe. Was fehlt mir hier?

%Vor%     
Steve Chapman 29.04.2009, 00:12
quelle

4 Antworten

12

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%     
Matt Davis 29.04.2009, 13:52
quelle
5

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

    
Rashmi Pandit 29.04.2009 05:07
quelle
0

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%     
Varun Gupta 13.03.2012 08:59
quelle
0

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!

    
Dhanuka777 04.08.2015 11:55
quelle

Tags und Links