首页 > 编程语言 >C# BinaryFormatter Serialize and Deserialize

C# BinaryFormatter Serialize and Deserialize

时间:2024-08-27 15:37:52浏览次数:10  
标签:fs C# Serialize System BinaryFormatter Windows using public

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApp291
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            //BinaryFormatterSerializeDemo();
            BinaryFormatterDeserializeDemo();
        }

        private void BinaryFormatterDeserializeDemo()
        {
            if (File.Exists("bin.data"))
            {
                using (FileStream fs = new FileStream("bin.data", FileMode.OpenOrCreate, FileAccess.ReadWrite))
                {
                    BinaryFormatter binFormatter = new BinaryFormatter();
                    var bks = (List<Book>)binFormatter.Deserialize(fs);
                    fs.Close();
                }
            }
        }

        private void BinaryFormatterSerializeDemo()
        {
            List<Book> books = new List<Book>();
            for (int i = 0; i < 10000; i++)
            {
                books.Add(new Book()
                {
                    Id = i,
                    Name = $"Name_{i}",
                    Title = $"Title_{i}",
                    Topic = $"Topic_{i}"
                });
            } 
            using (FileStream fs = new FileStream("bin.data", FileMode.OpenOrCreate, FileAccess.ReadWrite))
            {
                BinaryFormatter binFormatter = new BinaryFormatter();
                binFormatter.Serialize(fs, books);
                fs.Close();
            }
        }
    }

    [Serializable]
    class Book
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Title { get; set; }

        public string Topic { get; set; }
    }
}

 

标签:fs,C#,Serialize,System,BinaryFormatter,Windows,using,public
From: https://www.cnblogs.com/Fred1987/p/18382808

相关文章

  • 【SpringCloud】idea如何实现微服务多开
    背景:当需要使用相同的配置启动多个服务且host相同时,就需要在命令行指定不同的端口,但是springcloud中远程配置默认会覆盖所有本地参数,所以需要修改默认覆盖优先级一、默认优先级 二、配置远程配置优先级低于本地系统参数#是否允许本地配置覆盖远程配置spring.cloud.config......
  • docker和containerd的区别
    目录容器运行时Docker:原先的翘楚Containerd:K8s生态系统的标配容器运行时接口(CRI)Kubernetes与dockershim当前支持的CRI后端Dockershim调用关系对比常用命令容器运行时容器运行时(ContainerRuntime)是一种负责在操作系统层面创建和管理容器的软件工具或组件。它是容器化技术的......
  • 记一场 ABC364
    于洛谷专栏获得更差的阅读体验。于CSDN获得更一般的阅读体验。赛时ACABCD,赛后补出了E。由于比赛在一个月前,本来已经忘记这场比赛了,直到我看到了:(来自一位超厉害的小学同学神犇)\(364\)?很近的比赛啊,我打过吗?似乎打过?打开题目一看:这不就是斯坦纳树板题吗?但我为什么没印象?......
  • [ARC175E] Three View Drawing
    MyBlogs[ARC175E]ThreeViewDrawing哎,构造。首先考虑\(m=n^2\)怎么做:显然是最上面一层填满第一条主对角线,第二层填满第二条主对角线...(主对角线指可以循环的对角线)。把\(n\)变成满足\(n^2\geqm\)的最小的\(n\)。然后考虑删去\(n^2-m\)个。可以发现(谁能发现啊啊啊......
  • c/c++代码流程图生成
    以下介绍2款皆免费1.cxx2flow【github项目】c/c++函数解析为dot然后通过Graphviz渲染项目有附带gui程序可直接生成流程图,但是显示效果缩放不太行,建议解析生成dot后喂给其他基于Graphviz的渲染服务,使用过vscode上面的graphviz-interactive-preview,效果还行,也有在线网页渲染......
  • CISAW信息安全保障人员考试合格分数是多少?
    在网络安全领域,众多认证证书中,CISAW信息安全保障人员认证备受瞩目。随着信息安全专家的需求激增,国内面临着专业人才的短缺,越来越多人投身于CISAW认证考试。那么,要通过CISAW认证需多少分数呢?答案是84分(含)以上。如果考生作弊,其笔试成绩将被记为0分。考试总时长为150分钟,满分......
  • VScode+QT 无法自动补全代码的解决方法
    问题:没有添加包含的头文件路径,即include文件夹所在位置第一步找到库路径并复制(在qt安装路径中)第二步打开vscode环境配置文件,添加库路径最终效果头文件红色波浪线消失了,并且代码可以完美补全!注意事项请根据自己的来修改。记得把路径的\更换成\\或者用/表示记得在incl......
  • anaconda环境配置及jupyter环境配置
    一、添加系统环境变量1、anaconda安装完成后,打开环境变量2、更改系统变量3、添加系统变量,点击新建,添加下面四个变量(根据自己的实际安装情况!!!)D:\anacondaD:\anaconda\Scripts\D:\anaconda\Library\binD:\anaconda\Library\mingw-w64\bin完成!!!二、jupyter路径更改1、......
  • Android systrace环境的搭建和使用
    一、systrace简介Systrace是Android4.1中新增的性能数据采样和分析工具。它可帮助开发者收集Android 关键子系统(如SurfaceFlinger/SystemServer/Kernel/Input/Display等Framework部分关键模块、服务,View系统等)的运行信息,从而帮助开发者更直观的分析系统瓶颈,改进性能。S......
  • threeJs 修改TransformControls的显示位置
    有的时候模型的原点不是自身中心而是在场景的[0,0,0]位置这个时候想要让TransformControls的位置显示在模型的中心目前找的的处理方式是修改源码找到updateMatrixWorld方法updateMatrixWorld(){...for(leti=0;i<handles.length;i++){ ... if(this......