Error: “El deserializer no tiene conocimiento de cualquier tipo que se asigna a este contrato”?
-
05-10-2019 - |
Pregunta
Tengo una marcada [Serializable]
Foo clase y ISerializable
de ejecución. Estoy intentando serializarlo través DataContractSerializer. En GetObjectData hago esto:
info.AddValue("Test", new[] { 1,2,3});
Se produce un error con:
Elemento ': Test' contiene los datos de la 'http://schemas.microsoft.com/2003/10/Serialization/Arrays:ArrayOfint' contrato de datos. El deserializer no tiene conocimiento de cualquier tipo que se asigna a este contrato. Añadir el tipo correspondiente a 'ArrayOfint' a la lista de tipos conocidos -. Por ejemplo, utilizando el atributo KnownTypeAttribute o mediante la adición a la lista de tipos conocidos pasados ??a DataContractSerializer
He intentado hacer pasar un arg knownTypes
al constructor DataContractSerializer - no ayudó
Solución
El paso de un arg knownTypes
al constructor DataContractSerializer será no ayuda. En su lugar, añadir [KnownType(typeof(int[]))]
a clase en sí Foo.