c#序列化
时间: 2023-07-10 14:04:11 浏览: 87
C#的序列化
在 C# 中,对象序列化是将对象转换为可存储或传输的格式的过程。可以使用 C# 中的 System.Runtime.Serialization 命名空间中的类来实现对象序列化。下面是一个简单的示例,展示如何使用 C# 进行对象序列化:
```csharp
using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
// 定义一个需要序列化的类
[Serializable]
public class MyClass
{
public int x;
public string y;
}
class Program
{
static void Main(string[] args)
{
// 创建一个 MyClass 对象
MyClass obj = new MyClass();
obj.x = 10;
obj.y = "Hello World";
// 创建一个二进制格式化程序
BinaryFormatter formatter = new BinaryFormatter();
// 创建一个文件流,用于将对象序列化到文件中
FileStream stream = new FileStream("data.bin", FileMode.Create);
// 使用格式化程序将对象序列化到文件中
formatter.Serialize(stream, obj);
// 关闭文件流
stream.Close();
// 读取序列化后的对象
stream = new FileStream("data.bin", FileMode.Open);
// 使用格式化程序将对象反序列化
MyClass obj2 = (MyClass)formatter.Deserialize(stream);
// 输出反序列化后的对象的属性值
Console.WriteLine(obj2.x);
Console.WriteLine(obj2.y);
// 关闭文件流
stream.Close();
}
}
```
在上面的示例中,我们首先定义了一个名为 MyClass 的简单类,并使用 Serializable 属性标记该类可序列化。然后,我们创建了一个 MyClass 对象,并将其序列化到名为 data.bin 的文件中。最后,我们再次打开该文件,并使用格式化程序将其反序列化为 MyClass 对象,然后输出其属性值。
阅读全文