C#中二进制序列化与反序列化
时间: 2024-04-24 17:19:14 浏览: 181
C#中的序列化和反序列化
C#中的二进制序列化与反序列化是一种将对象转换为二进制数据流以便存储或传输,并且可以将二进制数据流还原为对象的过程。这种序列化方式可以用于在不同平台或不同应用程序之间传递对象数据。
在C#中,可以使用BinaryFormatter类来进行二进制序列化与反序列化操作。下面是一个简单的示例:
```csharp
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program
{
public static void Main()
{
// 创建一个Person对象
Person person = new Person { Name = "Alice", Age = 25 };
// 将对象序列化为二进制数据流
BinaryFormatter formatter = new BinaryFormatter();
MemoryStream stream = new MemoryStream();
formatter.Serialize(stream, person);
// 将二进制数据流反序列化为对象
stream.Position = 0;
Person deserializedPerson = (Person)formatter.Deserialize(stream);
// 输出反序列化后的对象属性
Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
}
}
```
在上面的示例中,我们定义了一个名为Person的类,并使用[Serializable]特性标记该类可以进行序列化。然后,我们创建了一个Person对象,并使用BinaryFormatter类将其序列化为二进制数据流。接着,我们将二进制数据流反序列化为一个新的Person对象,并输出其属性。
阅读全文