Frage

Ich habe eine Klasse Foo markiert [Serializable] und Umsetzung ISerializable. Ich versuche es über DataContractSerializer zu serialisiert. In GetObjectData ich dies tun:

info.AddValue("Test", new[] { 1,2,3});

Es schlägt fehl, mit:

Element ': Test' enthält die Daten des 'http://schemas.microsoft.com/2003/10/Serialization/Arrays:ArrayOfint' Datenvertrages. Der Deserializer hat keine Kenntnis von jeglicher Art, die zu diesem Vertrag abbildet. Fügen Sie den Typ entsprechend ‚ArrayOfint‘ in die Liste der bekannten Typen - z. B. durch das Knowntype Attribut oder durch sie in die Liste der bekannten Typen übergeben DataContractSerializer Hinzufügen

Ich habe versucht, eine knownTypes arg an den DataContractSerializer Konstruktor - hat nicht geholfen

.
War es hilfreich?

Lösung

Übergeben eines knownTypes arg an den DataContractSerializer Konstruktor nicht Hilfe. Stattdessen fügt [KnownType(typeof(int[]))] Klasse Foo selbst.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top