Domanda

Qualcuno potrebbe darmi un esempio su come posso convertire un byte [] in una ArrayList di Hashtables con C #? (il byte [] rappresenta la ArrayList di Hashtables precedentemente serializzata)

Nota: sto utilizzando Windows Mobile, che non fornisce BinaryFormatter.

È stato utile?

Soluzione

  

Inoltre, ArrayList viene automaticamente convertito dall'API del database nel byte []

Francamente, hai per trovare l'API di serializzazione effettiva utilizzata per avere la possibilità di ricostruire questi dati. Probabilmente è BinaryFormatter, che è notoriamente non portatile e intollerante alla versione.

Se hai bisogno di per archiviare i dati come binari e utilizzarli a lungo termine (database) e tra piattaforme (CF), dovrai usare un serializzatore adatto. Ad esempio, protobuf-net funzionerebbe in linea di principio (anche se non gli piacerà ArrayList non tipizzato, preferendo digitare List<T> ecc.)

Se i dati sono attualmente archiviati come <=>, la soluzione migliore sarebbe estrarli utilizzando il sistema attuale e reimballarli (magari in una colonna o tabella diversa) in un formato di serializzazione più adatto.

Altri suggerimenti

Quando dici " che era precedentemente serializzato " vuoi dire " serializzato con BinaryFormatter " ;? Se è così, no - avresti bisogno di <=> anche per deserializzare. Se il Compact Framework non lo supporta, sei praticamente sfortunato. Voglio dire, se il formato di serializzazione è documentato da qualche parte (non sono sicuro che lo sia o meno) potresti scrivere il tuo <=> - ma probabilmente sarebbe un po 'complicato.

Invece, dovresti scegliere un formato di serializzazione che è supportato ovunque sia necessario serializzare / deserializzare.

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