Question

J'ai [Serializable] Foo classe marquée et la mise en œuvre ISerializable. Je suis en train de sérialisation via DataContractSerializer. Dans GetObjectData Je fais ceci:

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

Il échoue avec:

  

élément « : Test » contient des données du contrat de données « http://schemas.microsoft.com/2003/10/Serialization/Arrays:ArrayOfint ». Le désérialiseur n'a aucune connaissance de tout type qui correspond à ce contrat. Ajouter le type correspondant à « ArrayOfint » à la liste des types connus -. Par exemple, en utilisant l'attribut KnownTypeAttribute ou en l'ajoutant à la liste des types connus passés à DataContractSerializer

J'ai essayé passer un arg knownTypes au constructeur DataContractSerializer - n'a pas aidé

.
Était-ce utile?

La solution

Le passage d'un arg knownTypes au constructeur DataContractSerializer sera pas aide. Au lieu de cela, ajouter [KnownType(typeof(int[]))] à la classe Foo lui-même.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top