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

c# 序列化

作者:メ可遇不可求   发布日期:2025-04-04   浏览:69

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("张三", 30);

        // 序列化对象到文件
        Serialize(person, "person.dat");

        // 反序列化对象从文件
        Person deserializedPerson = Deserialize("person.dat");

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

    // 序列化方法
    static void Serialize(Person person, string filePath)
    {
        IFormatter formatter = new BinaryFormatter();
        using (Stream stream = new FileStream(filePath, FileMode.Create, FileAccess.Write))
        {
            formatter.Serialize(stream, person);
        }
    }

    // 反序列化方法
    static Person Deserialize(string filePath)
    {
        IFormatter formatter = new BinaryFormatter();
        using (Stream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read))
        {
            return (Person)formatter.Deserialize(stream);
        }
    }
}

解释说明:

  1. 定义可序列化的类:使用 [Serializable] 属性标记 Person 类,使其可以被序列化。
  2. 创建对象:创建一个 Person 对象,并设置其属性。
  3. 序列化:将对象序列化为二进制格式并保存到文件中。Serialize 方法使用 BinaryFormatter 进行序列化。
  4. 反序列化:从文件中读取二进制数据并反序列化为 Person 对象。Deserialize 方法同样使用 BinaryFormatter 进行反序列化。
  5. 输出结果:打印反序列化后的对象信息,验证序列化和反序列化是否成功。

注意:BinaryFormatter 在 .NET Core 和 .NET 5+ 中已被弃用,建议使用其他序列化方式如 JSON 或 XML 序列化。

上一篇:c# begininvoke

下一篇:c# orm

大家都在看

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 中文站