winform 怎样使用序列化将数据保存到本地
时间: 2023-02-07 12:48:20 浏览: 188
winform 使用ViewState保存非控件数据源码
在 Windows Forms 应用程序中,可以使用 .NET Framework 中的序列化功能来将数据保存到本地。
要使用序列化,需要做以下几件事:
1. 将要序列化的对象实现 `ISerializable` 接口。这个接口要求你实现一个 `GetObjectData` 方法,用于将对象的数据写入一个 `SerializationInfo` 对象中。
2. 创建一个 `BinaryFormatter` 对象,用于执行序列化和反序列化操作。
3. 创建一个文件流,用于将数据写入本地文件。
4. 使用 `BinaryFormatter.Serialize` 方法将要序列化的对象写入文件流。
下面是一个示例代码,展示了如何将一个对象序列化到本地文件中:
```
[Serializable]
public class MyClass : ISerializable
{
public string SomeData { get; set; }
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue("SomeData", SomeData);
}
}
// 序列化对象
MyClass obj = new MyClass { SomeData = "Hello, world!" };
using (FileStream stream = new FileStream("data.bin", FileMode.Create))
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, obj);
}
```
要将数据从本地文件中反序列化回对象,可以使用 `BinaryFormatter.Deserialize` 方法。示例代码如下:
```
using (FileStream stream = new FileStream("data.bin", FileMode.Open))
{
BinaryFormatter formatter = new BinaryFormatter();
MyClass obj = (MyClass)formatter.Deserialize(stream);
}
```
请注意,序列化是一种将对象的状态转换为字
阅读全文