C# 对象进行序列化逻辑编写
时间: 2023-11-23 13:44:26 浏览: 76
C#的序列化
在 C# 中,要对对象进行序列化,你需要遵循以下步骤:
1. 导入 `System.Runtime.Serialization` 命名空间。
2. 在要序列化的类上添加 `[Serializable]` 特性。
3. 创建一个 `FileStream` 对象,用于将序列化的对象写入文件或流。
4. 创建一个 `BinaryFormatter` 对象,用于执行序列化操作。
5. 使用 `BinaryFormatter.Serialize` 方法将对象序列化并写入文件或流。
6. 关闭 `FileStream` 对象。
下面是一个简单的示例代码,演示了如何对一个名为 `Person` 的类进行序列化:
```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 SerializationExample
{
public static void Main()
{
Person person = new Person { Name = "John", Age = 30 };
// 序列化
FileStream fileStream = new FileStream("person.dat", FileMode.Create);
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(fileStream, person);
fileStream.Close();
// 反序列化
FileStream fileStream2 = new FileStream("person.dat", FileMode.Open);
Person deserializedPerson = (Person)formatter.Deserialize(fileStream2);
fileStream2.Close();
Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
}
}
```
在上述示例中,我们首先创建了一个 `Person` 类,并使用 `[Serializable]` 特性标记它以进行序列化。然后,我们在 `SerializationExample` 类的 `Main` 方法中,创建了一个 `Person` 对象并将其序列化到名为 "person.dat" 的文件中。接着,我们再次打开文件并将其反序列化为一个新的 `Person` 对象,最后输出其属性值。
请注意,如果你的类包含了不可序列化的成员(例如事件、委托等),你需要将其标记为 `[NonSerialized]` 或使用其他方式进行处理。
阅读全文