Warum bin ich immer das WCF Fehlermeldung?
Bin ich immer den folgenden Fehler, wenn ich rufe mein WCF-Dienst. Was vermisse ich hier?
'System.String[]' with data contract name
'ArrayOfstring:http://schemas.microsoft.com/2003/10/Serialization/Arrays'
is not expected. Add any types not known statically to the list of known
types - for example, by using the KnownTypeAttribute attribute or by adding
them to the list of known types passed to DataContractSerializer.'. Please
see InnerException for more details.
{"There was an error while trying to serialize parameter
http://tempuri.org/:myEntity. The InnerException message was
'Type 'System.String[]' with data contract name
'ArrayOfstring:http://schemas.microsoft.com/2003/10/Serialization/Arrays'
is not expected. Add any types not known statically to the list of known
types - for example, by using the KnownTypeAttribute attribute or by adding
them to the list of known types passed to DataContractSerializer.'.
Please see InnerException for more details."}
- können Sie nach dem code, um Ihre service-und/oder client?
- bin neu in WCF...myEntity ist ein C# - businessobject...kann u bitte lassen Sie mich wissen, wie und wo kann ich diese Art zu DataContractSerializer ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Von dem, was ich sammeln, haben Sie eine WCF-Funktion, die einen parameter namens "myEntity'. Ich gehe davon aus, dass die Art von myEntity ist eine Benutzer-definierte Klasse und ist geschmückt mit dem DataContract-Attribut, wie es sein sollte. Ich gehe auch davon aus, dass die Art der myEntity hat ein Mitglied-Feld ist ein string-array. Lassen Sie uns davon ausgehen, dass dies alles wahr ist (wieder, es wäre wirklich hilfreich, wenn du posten könntest deinen code).
Normalerweise, string-arrays, D. H., string[], serialisieren gut. Aber in einigen Fällen (siehe hier und hier), Sie haben können, um es zu der Liste der bekannten Typen damit WCF die Serialisierung alles richtig.
Um dies zu tun, fügen Sie Folgendes:
Du noch nicht gepostet der code, so meine Antwort basiert auf der Annahme, dass Sie eine Klasse myEntity, die Sie versuchen, zu serialisieren. Versuchen Sie es mit einem KnownTypeAttribute für die Klasse
z.B.
Finden Sie auf der folgenden MSDN-link:
KnownTypeAttribute
Ja. Wie schon in den vorherigen post, Das Problem tritt auf, wenn Sie übergeben Sie ein array eines Typs(definiert als DataContract]). Sie müssen definieren Sie die array dieser Klasse als separater Typ und markieren Sie es als Daten-Vertrag.
Nicht Funktionieren`
`
Was funktioniert:
In meinem Fall, nach dem hinzufügen [Serializable] - Attribut auf die Klasse MyEntity. Und dann kam die Frage mit der Serialisierung der Rollen string-array.
[KnownType(typeof(string[]))] funktioniert wie Magie!