C#将字节数组转换为通用列表

时间:2009-10-25 19:39:59

标签: c# resources

我有一个自定义列表,我想将其作为资源嵌入,因此可以在每次新安装时将其复制出来。但是,我的列表被序列化为二进制文件,当我将其作为资源添加时,我不能将其复制出来,因为C#将其视为字节数组。当我从资源中提取文件时,我需要能够将此字节数组转换回我的自定义列表。有人能告诉我如何实现这种转换吗?

谢谢!

3 个答案:

答案 0 :(得分:6)

你以什么方式序列化它?通常你会反转这个过程。例如:

BinaryFormatter bf = new BinaryFormatter();
using(Stream ms = new MemoryStream(bytes)) {
    List<Foo> myList = (List<Foo>)bf.Deserialize(ms);
}

如果你使用了不同的序列化器,显然你可能需要调整它!或者,如果您可以将数据作为Stream(而不是byte[])获取,则可能会失去MemoryStream步骤......

答案 1 :(得分:1)

列表是如何序列化的?您应该有权访问等效的Deserialize()方法,其结果可以转换回原始列表类型。

答案 2 :(得分:1)

您需要将字节数组反序列化为列表实例。执行此操作的方法取决于您序列化它的机制。例如,如果您使用BinaryFormatter对其进行序列化,请使用相同的方法进行反序列化。