有人可以给我一个示例,说明如何使用 C# 将 byte[] 转换为 Hashtables 的 ArrayList 吗?(byte[] 表示之前序列化的 Hashtables 的 ArrayList)
注意:我在不提供 BinaryFormatter 的 Windows Mobile 下运行。
此外,我的 ArrayList 由数据库 API 自动转换为 byte[]
坦率地说,您将不得不找到用于有机会重建这些数据的实际序列化 API。它可能是BinaryFormatter
,这是出了名的不可移植和版本不兼容。
如果您需要将数据存储为二进制文件,并长期(数据库)和平台(CF)之间使用,那么您将不得不使用合适的序列化程序。例如,protobuf-net原则上可以工作(尽管它不喜欢 untyped ArrayList
,更喜欢 typedList<T>
等)。
如果数据当前存储为BinaryFormatter
,那么最好的办法是使用当前系统提取它并以更合适的序列化格式重新打包(可能在不同的列或表中)。
当您说“先前已序列化”时,您的意思是“使用序列化BinaryFormatter
”吗?如果是这样,不 - 你也需要BinaryFormatter
反序列化。如果 Compact Framework 不支持这一点,那么您基本上就不走运了。我的意思是,如果序列化格式记录在某处(我不确定是否),您可以编写自己的BinaryFormatter
- 但这可能会有些棘手。
相反,您应该选择在需要序列化/反序列化的任何地方都支持的序列化格式。