Erreur: « Le désérialiseur n'a aucune connaissance de tout type qui correspond à ce contrat »?
-
05-10-2019 - |
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é
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.