как конвертировать byte [] в ArrayList из Hashtables?
Вопрос
Может кто-нибудь дать мне пример того, как я могу преобразовать байт [] в ArrayList из Hashtables с C #? (byte [] представляет ArrayList Hashtables, который был ранее сериализован)
Примечание: я работаю под Windows Mobile, которая не предоставляет BinaryFormatter.
Решение
Кроме того, мой ArrayList автоматически преобразуется API-интерфейсом базы данных в байт []
Честно говоря, у вас есть , чтобы найти действительный API сериализации, используемый для возможности восстановления этих данных. Это, вероятно, BinaryFormatter
, который, как известно, непереносим и нетерпим к версии.
Если вам нужно хранить данные в двоичном виде и использовать их в течение длительного времени (база данных) и между платформами (CF), то вам придется использовать подходящий сериализатор. Например, protobuf-net будет работать в основном (хотя ему не понравится типизированный ArrayList
, предпочтительнее типизированный List<T>
и т. д.).
Если данные в настоящее время хранятся как <=>, то лучше всего их извлечь из текущей системы и упаковать (возможно, в другой столбец или таблицу) в более подходящий формат сериализации.
Другие советы
Когда вы говорите " это было ранее сериализовано " Вы имеете в виду " сериализован с BinaryFormatter
" ;? Если это так, нет - вам нужно <=> также выполнить десериализацию. Если Compact Framework не поддерживает это, вам в основном не повезло. Я имею в виду, если формат сериализации задокументирован где-то (я не уверен, так ли это или нет), вы могли бы написать свой собственный <=> - но это, вероятно, было бы несколько сложно.
Вместо этого вы должны выбрать формат сериализации, который поддерживается везде, где вам нужно сериализовать / десериализовать.