c# 对类对象进行反序列化
时间: 2023-07-22 18:02:51 浏览: 53
在 C# 中,可以使用 `System.Runtime.Serialization` 命名空间提供的类来进行类对象的反序列化。下面是一个简单的示例代码:
```csharp
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
// 定义一个类
[Serializable]
public class MyClass
{
public int MyProperty { get; set; }
public string MyField;
}
class Program
{
static void Main()
{
// 创建一个 MyClass 对象并设置属性和字段的值
MyClass myObj = new MyClass { MyProperty = 42, MyField = "Hello, World!" };
// 将对象序列化到文件中
string filePath = "myObject.bin";
SerializeToFile(myObj, filePath);
// 从文件中反序列化对象
MyClass deserializedObj = DeserializeFromFile(filePath);
// 输出属性和字段的值
Console.WriteLine(deserializedObj.MyProperty);
Console.WriteLine(deserializedObj.MyField);
}
static void SerializeToFile(object obj, string filePath)
{
// 创建一个文件流
using (FileStream fs = new FileStream(filePath, FileMode.Create))
{
// 创建一个二进制格式化器
BinaryFormatter formatter = new BinaryFormatter();
// 将对象序列化到文件流中
formatter.Serialize(fs, obj);
}
}
static MyClass DeserializeFromFile(string filePath)
{
// 创建一个文件流
using (FileStream fs = new FileStream(filePath, FileMode.Open))
{
// 创建一个二进制格式化器
BinaryFormatter formatter = new BinaryFormatter();
// 从文件流中反序列化对象
object obj = formatter.Deserialize(fs);
// 将反序列