Pregunta

¿Podría alguien darme un ejemplo sobre cómo puedo convertir un byte [] en una ArrayList of Hashtables con C #? (el byte [] representa la ArrayList de Hashtables que se serializó anteriormente)

Nota: estoy ejecutando Windows Mobile, que no proporciona BinaryFormatter.

¿Fue útil?

Solución

  

Además, mi ArrayList se convierte automáticamente por la API de la base de datos en el byte []

Francamente, va a tener para encontrar la API de serialización real utilizada para tener la oportunidad de reconstruir estos datos. Probablemente sea BinaryFormatter, que es notoriamente no portátil e intolerante a la versión.

Si necesita almacenar datos como binarios y usarlos a largo plazo (base de datos) y entre plataformas (CF), entonces tendrá que usar un serializador adecuado. Por ejemplo, protobuf-net funcionaría en principal (aunque no le gustará sin escribir ArrayList, prefiere escribir List<T> etc.)

Si los datos están almacenados actualmente como <=>, entonces su mejor opción sería extraerlos usando su sistema actual y volver a empaquetarlos (tal vez en una columna o tabla diferente) en un formato de serialización más adecuado.

Otros consejos

Cuando dices " eso fue serializado previamente " ¿te refieres a " serializado con BinaryFormatter " ;? Si es así, no, también necesitarías <=> para deserializar. Si Compact Framework no admite eso, básicamente no tienes suerte. Quiero decir, si el formato de serialización está documentado en alguna parte (no estoy seguro de si lo es o no), podrías escribir tu propio <=>, pero probablemente sería algo complicado.

En su lugar, debe elegir un formato de serialización que sea compatible en todos los lugares donde necesite serializar / deserializar.

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