come convertire byte [] in una ArrayList di Hashtables?
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.
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.