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ó

.
¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top