如何将Collection转换为字节数组

时间:2013-05-12 22:48:12

标签: c# .net bytearray

我有ObservableCollection<Employee>如何将其转换为字节数组[]?

班级员工包括,  - 员工ID  - 加入的日期   - 年龄   - 薪水

我需要传递集合的服务是期望数据在byte []中 将observableCollection转换为byte []的有效方法是什么? 或者我只是需要遍历集合来创建一个字节数组?

2 个答案:

答案 0 :(得分:1)

您可以使用二进制格式化程序来序列化您的收藏。

http://msdn.microsoft.com/en-us/library/system.runtime.serialization.formatters.binary.binaryformatter.aspx

var employees = new ObservableCollection<Employee>();


using (var stream = new MemoryStream())
{    
    var formatter = new BinaryFormatter();
    formatter.Serialize(stream, employees);
    var byteArray = new byte[stream.Length];
    stream.Seek(0, SeekOrigin.Begin);
    stream.Read(byteArray, 0, (int)stream.Length);
    // do whatever you want with the bytes now....

}

答案 1 :(得分:0)

你有像Protobuf,Protobuf-Net,你自己的自定义BinaryWriter“ToBytes,FromBytes”这样的选择。这实际上取决于您的接收端需求,以及它们是使用通用文档格式还是自定义格式。