在C#中实现二进制序列化可以使用BinaryFormatter类。以下是一个简单的示例代码:
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main()
{
Person person = new Person { Name = "Alice", Age = 25 };
// 创建一个内存流
MemoryStream stream = new MemoryStream();
// 创建BinaryFormatter实例
BinaryFormatter formatter = new BinaryFormatter();
// 使用BinaryFormatter序列化对象到流中
formatter.Serialize(stream, person);
// 将流转换为字节数组
byte[] data = stream.ToArray();
// 反序列化数据
stream.Position = 0;
Person deserializedPerson = (Person)formatter.Deserialize(stream);
Console.WriteLine("Name: " + deserializedPerson.Name);
Console.WriteLine("Age: " + deserializedPerson.Age);
}
}
在上面的示例中,我们创建了一个名为Person的可序列化类。然后,我们实例化一个Person对象并将其序列化到内存流中。接着,我们将流转换为字节数组,并将其重新反序列化为一个新的Person对象。最后,我们输出反序列化后的对象的属性值。