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

.
È stato utile?

Soluzione

Il passaggio di un arg knownTypes al costruttore DataContractSerializer sarà non di aiuto. Invece, aggiungere [KnownType(typeof(int[]))] alla classe Foo sé.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top