Errore: “Il deserializzatore non è a conoscenza di qualsiasi tipo che mappa al presente contratto”?
-
05-10-2019 - |
Domanda
Ho una classe Foo marcata [Serializable]
e ISerializable
attuazione. Sto cercando di serializzare via DataContractSerializer. In GetObjectData faccio questo:
info.AddValue("Test", new[] { 1,2,3});
Non riesce con:
Element ': Test' contiene i dati del 'http://schemas.microsoft.com/2003/10/Serialization/Arrays:ArrayOfint' contratto dati. Il deserializzatore non è a conoscenza di qualsiasi tipo che mappa al presente contratto. Aggiungere il tipo corrispondente a 'ArrayOfint' all'elenco dei tipi noti -., Ad esempio, utilizzando l'attributo KnownTypeAttribute o aggiungendo alla lista dei tipi noti passati DataContractSerializer
ho provato passando un arg knownTypes
al costruttore DataContractSerializer - non ha aiutato
Soluzione
Il passaggio di un arg knownTypes
al costruttore DataContractSerializer sarà non di aiuto. Invece, aggiungere [KnownType(typeof(int[]))]
alla classe Foo sé.