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

c# serializable

作者:黑白灰调   发布日期:2025-03-05   浏览:114

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}");
        }
    }
}

解释说明:

  1. [Serializable] 属性:这个属性标记 Person 类是可以被序列化的。只有标记了这个属性的类才能被序列化。
  2. BinaryFormatter:这是一个用于将对象序列化为二进制格式或从二进制格式反序列化对象的类。
  3. 序列化过程:我们将 Person 对象写入到一个文件中,使用 BinaryFormatter.Serialize 方法。
  4. 反序列化过程:我们从文件中读取并还原 Person 对象,使用 BinaryFormatter.Deserialize 方法。

注意:从 .NET Core 和 .NET 5+ 开始,BinaryFormatter 已经被认为不安全,并且在某些版本中已被弃用。推荐使用其他更安全的序列化方法,例如 JSON 或 XML 序列化。

上一篇:c# list 复制

下一篇:c#获取list集合中某一元素的值

大家都在看

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