C# 将对象转换成字节数组(二进制数据)
作者:野牛程序员:2024-07-15 14:31:55C#阅读 3326
C# 将对象转换成字节数组(二进制数据)
在C#中,可以使用BinaryFormatter类将对象序列化为字节数组(即将对象转换为二进制数据)。以下是一个示例代码:
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]
public class MyObject
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Program
{
public static void Main()
{
MyObject obj = new MyObject { Id = 1, Name = "Example" };
byte[] byteArray = ObjectToByteArray(obj);
Console.WriteLine(BitConverter.ToString(byteArray));
}
public static byte[] ObjectToByteArray(object obj)
{
if (obj == null)
return null;
BinaryFormatter bf = new BinaryFormatter();
using (MemoryStream ms = new MemoryStream())
{
bf.Serialize(ms, obj);
return ms.ToArray();
}
}
}此代码包括以下几个步骤:
定义一个可序列化的类(即
MyObject类,带有[Serializable]特性)。创建一个对象实例,并设置其属性。
调用
ObjectToByteArray方法,将对象转换为字节数组。在
ObjectToByteArray方法中,使用BinaryFormatter将对象序列化到内存流中,然后将内存流转换为字节数组。
需要注意的是,BinaryFormatter已经被标记为不安全,建议使用更安全的序列化方法,如System.Text.Json或System.Runtime.Serialization.Json。以下是使用System.Text.Json的示例:
using System;
using System.Text.Json;
[Serializable]
public class MyObject
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Program
{
public static void Main()
{
MyObject obj = new MyObject { Id = 1, Name = "Example" };
byte[] byteArray = JsonSerializer.SerializeToUtf8Bytes(obj);
Console.WriteLine(BitConverter.ToString(byteArray));
}
}此代码使用JsonSerializer.SerializeToUtf8Bytes方法将对象序列化为字节数组,提供了更安全的替代方案。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:c#将C++库中指针对象转换为字节数组
- 下一篇:c++数组与指针
