Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c#序列化

作者:噬血啸月   发布日期:2025-05-12   浏览:29

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 = File.Create("person.dat"))
        {
            BinaryFormatter formatter = new BinaryFormatter();
            formatter.Serialize(fs, person);
            Console.WriteLine("对象已成功序列化到文件 'person.dat'");
        }

        // 反序列化
        Person deserializedPerson;
        using (FileStream fs = File.OpenRead("person.dat"))
        {
            BinaryFormatter formatter = new BinaryFormatter();
            deserializedPerson = (Person)formatter.Deserialize(fs);
            Console.WriteLine("对象已成功反序列化");
        }

        // 输出反序列化后的对象信息
        Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
    }
}

解释说明:

  1. 定义可序列化的类Person 类被标记为 [Serializable],表示它可以被序列化。它包含两个属性 NameAge
  2. 创建对象:在 Main 方法中,创建了一个 Person 对象,并设置了它的属性值。
  3. 序列化:使用 BinaryFormatterPerson 对象序列化并保存到文件 person.dat 中。
  4. 反序列化:从文件 person.dat 中读取数据,并将其反序列化为 Person 对象。
  5. 输出结果:最后,打印出反序列化后的对象信息。

注意:BinaryFormatter 已经被标记为过时,建议在新项目中使用其他序列化方法(如 JSON 或 XML)。

上一篇:c# list

下一篇:c#全局变量

大家都在看

c# 二进制

c# tcp client

c# type.gettype

c# sqlconnection

.net和c#

c#游戏开发

c#网络编程

c# rectangle

c# if else

c# rtsp

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站