有人可以告诉我如何在 Windows Mobile 下使用 C# 将 byte[] 转换为 ArrayList 吗?
后期编辑:
这就像拥有一个包含自定义类型实例的 ArrayList。该列表作为字节数组进入数据库(进入 blob)(转换由数据库 API 完成);我想要的是将 byte[] 恢复为 ArrayList;
.NET CF 不提供 BinaryFormatter;
有人可以告诉我如何在 Windows Mobile 下使用 C# 将 byte[] 转换为 ArrayList 吗?
后期编辑:
这就像拥有一个包含自定义类型实例的 ArrayList。该列表作为字节数组进入数据库(进入 blob)(转换由数据库 API 完成);我想要的是将 byte[] 恢复为 ArrayList;
.NET CF 不提供 BinaryFormatter;
所有数组都继承了 ICollection,所以你可以使用
ArrayList list = new ArrayList(bytearray);
尽管我自己会使用相同的方法使用通用 List<byte> ,因为这样可以防止对数组中的每个字节值进行装箱。尽管数组不会静态继承相应类型的泛型 IList,但 CLR 在运行时为每个数组实例添加相关实现(请参阅此处的重要说明)
你不能这样做吗?
ArrayList list = new ArrayList(byteArray);
ArrayList 是无类型的,只能用于兼容性。
我建议你使用 List<byte>:
var list = new List<byte>(byteArray);
编辑:如果数据库 API 进行转换,它不应该提供一种反序列化的方法吗?尝试使用 Reflector 来了解它是如何进行转换的。
好像 CF 不支持BinaryFormatter
. 您是否控制发送该二进制数据的组件?您不能在该组件中将数据转换为 Xml 吗?如果不看看Compact Formatter