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

c# 反序列化

作者:遥岚月刹   发布日期:2025-05-29   浏览:45

using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }

    public override string ToString()
    {
        return $"{Name} is {Age} years old.";
    }
}

public class Program
{
    public static void Main()
    {
        // 反序列化示例
        string filePath = "person.dat";

        if (File.Exists(filePath))
        {
            using (FileStream fs = new FileStream(filePath, FileMode.Open))
            {
                BinaryFormatter formatter = new BinaryFormatter();
                Person deserializedPerson = (Person)formatter.Deserialize(fs);
                Console.WriteLine("Deserialized Person: " + deserializedPerson);
            }
        }
        else
        {
            Console.WriteLine("File does not exist.");
        }
    }
}

解释说明:

  1. Person 类:定义了一个简单的 Person 类,包含两个属性 NameAge,以及一个重写的 ToString 方法。
  2. Main 方法:在 Main 方法中,我们尝试从文件 person.dat 中读取并反序列化一个 Person 对象。
  3. BinaryFormatter:使用 BinaryFormatter 进行反序列化。需要注意的是,BinaryFormatter 已经被标记为不安全,建议在生产环境中使用更安全的替代方案,如 System.Text.JsonNewtonsoft.Json
  4. 文件检查:在反序列化之前,先检查文件是否存在。如果文件存在,则打开文件流并进行反序列化;如果文件不存在,则输出提示信息。

请注意,BinaryFormatter 已经被标记为不安全,建议在生产环境中使用更安全的替代方案。

上一篇:c# 字节数组转字符串

下一篇:c# tostring有效位数

大家都在看

c# 二进制

c# tcp client

c# type.gettype

c# sqlconnection

.net和c#

c#游戏开发

c#网络编程

c# rectangle

c# if else

c#高并发

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

Laravel 中文站