C#如何将object转换为字节流
时间: 2024-09-21 07:13:46 浏览: 59
在C#中,你可以使用`BinaryFormatter`类将`Object`转换为字节流,这是一个序列化的过程。以下是基本步骤:
```csharp
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
public byte[] SerializeObject(Object obj)
{
// 创建一个MemoryStream来保存字节流
MemoryStream ms = new MemoryStream();
// 创建BinaryFormatter实例并设置其FormatVersion属性为1 (旧版本兼容)
BinaryFormatter formatter = new BinaryFormatter();
formatter.AssemblyFormat = FormatterAssemblyStyle.Simple;
// 使用BinaryFormatter将对象序列化到MemoryStream
formatter.Serialize(ms, obj);
// 获取序列化后的字节数组
byte[] bytes = ms.ToArray();
// 关闭MemoryStream
ms.Close();
return bytes;
}
// 反序列化时
public Object DeSerializeObject(byte[] bytes)
{
// 创建一个新的MemoryStream,并从字节数组创建一个流
MemoryStream ms = new MemoryStream(bytes);
// 使用BinaryFormatter反序列化内存中的字节
BinaryFormatter formatter = new BinaryFormatter();
return formatter.Deserialize(ms);
}
```
阅读全文