Pergunta

Alguém poderia me dar um exemplo de como eu posso converter um byte [] para um ArrayList de Hashtables com C #? (O byte [] representa o ArrayList de Hashtables que foi anteriormente serializados)

Nota:. Estou rodando sob Windows Mobile, que não prevê BinaryFormatter

Foi útil?

Solução

Além disso, meu ArrayList é automaticamente convertido pelo API de banco de dados para o byte []

Francamente, você está indo para Have para encontrar a API de serialização real usado para ter uma chance de reconstruir esses dados. É provavelmente BinaryFormatter, que é notoriamente não-portátil e versão intolerante.

Se você necessidade para armazenar dados como binário, e usá-lo a longo prazo (base de dados) e entre plataformas (CF), então você vai ter que usar um serializador adequado. Por exemplo, protobuf-net iria funcionar em princípio (embora ele não vai gostar ArrayList untyped, preferindo digitado List<T> etc).

Se os dados é atualmente armazenados como BinaryFormatter, então a sua melhor aposta seria para extraí-lo usando o seu sistema atual e re pacote-lo (talvez em uma coluna ou tabela diferente) de uma forma mais adequada serialização formato.

Outras dicas

Quando você diz "que foi serializado anteriormente" que quer dizer "serializado com BinaryFormatter"? Se assim for, não - você precisa BinaryFormatter desserializar também. Se o Compact Framework não suporta isso, você está basicamente fora de sorte. Quer dizer, se o formato de serialização está documentado em algum lugar (não tenho certeza se é ou não) você poderia escrever o seu próprio BinaryFormatter -. Mas provavelmente seria um pouco complicado

Em vez disso, você deve escolher um formato de serialização que é suportado em todos os lugares que você precisa para serializar / desserializar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top