как конвертировать byte [] в ArrayList из Hashtables - PullRequest
0 голосов
/ 17 сентября 2009

Может кто-нибудь дать мне пример того, как я могу преобразовать байт [] в ArrayList из Hashtables с C #? (байт [] представляет ArrayList Hashtables, который был ранее сериализован)

Примечание: я работаю под Windows Mobile, которая не предоставляет BinaryFormatter.

Ответы [ 2 ]

3 голосов
/ 17 сентября 2009

Кроме того, мой ArrayList автоматически преобразуется API-интерфейсом базы данных в байт []

Честно говоря, вы собираетесь иметь , чтобы найти действительный API сериализации, используемый для шанса восстановления этих данных. Это, вероятно, BinaryFormatter, который общеизвестно непереносим и нетерпим к версии.

Если вам нужно для хранения данных в двоичном виде и долгосрочного использования (база данных) и между платформами (CF), то вам придется использовать подходящий сериализатор. Например, protobuf-net будет работать в основном (хотя он не будет похож на нетипизированный ArrayList, предпочитая напечатанный List<T> и т. Д.).

Если данные в настоящее время хранятся как BinaryFormatter, то лучшим вариантом будет извлечь их, используя вашу текущую систему, и повторно упаковать (возможно, в другой столбец или таблицу) в более подходящий формат сериализации.

1 голос
/ 17 сентября 2009

Когда вы говорите «это было ранее сериализовано», вы имеете в виду «сериализовано с BinaryFormatter»? Если это так, то нет - вам нужно BinaryFormatter также для десериализации. Если Compact Framework не поддерживает это, вам в основном не повезло. Я имею в виду, если формат сериализации где-то задокументирован (я не уверен, так ли это), вы могли бы написать свой собственный BinaryFormatter - но это, вероятно, было бы несколько сложно.

Вместо этого вы должны выбрать формат сериализации, который поддерживается везде, где вам нужно сериализовать / десериализовать.

...