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 Person(string name, int age)
{
Name = name;
Age = age;
}
}
class Program
{
static void Main()
{
// 创建一个Person对象
Person person = new Person("Alice", 30);
// 序列化对象到文件
using (FileStream fs = new FileStream("person.dat", FileMode.Create))
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(fs, person);
Console.WriteLine("对象已成功序列化");
}
// 反序列化对象从文件
using (FileStream fs = new FileStream("person.dat", FileMode.Open))
{
BinaryFormatter formatter = new BinaryFormatter();
Person deserializedPerson = (Person)formatter.Serialize(fs);
Console.WriteLine($"反序列化后的对象: Name = {deserializedPerson.Name}, Age = {deserializedPerson.Age}");
}
}
}
[Serializable]
属性:这个属性标记 Person
类是可以被序列化的。只有标记了这个属性的类才能被序列化。BinaryFormatter
:这是一个用于将对象序列化为二进制格式或从二进制格式反序列化对象的类。Person
对象写入到一个文件中,使用 BinaryFormatter.Serialize
方法。Person
对象,使用 BinaryFormatter.Deserialize
方法。注意:从 .NET Core 和 .NET 5+ 开始,BinaryFormatter
已经被认为不安全,并且在某些版本中已被弃用。推荐使用其他更安全的序列化方法,例如 JSON 或 XML 序列化。
上一篇:c# list 复制
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站