C# 将对象转换成字节数组(二进制数据)
作者:野牛程序员:2024-07-15 14:31:55C#阅读 2992
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++数组与指针