首页 > 其他分享 >序列化与反序列化的用法

序列化与反序列化的用法

时间:2022-08-23 19:12:00浏览次数:54  
标签:name age System 用法 Person using new 序列化

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;

namespace ConsoleApp4
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Person> listPers = new List<Person>();
            Person per1 = new Person("张三", 18);
            Person per2 = new Person("李四", 20);
            listPers.Add(per1);
            listPers.Add(per2);
            SerializeMethod(per1 );
            ReserializeMethod();
            Console.ReadKey();
        }

        static void ReserializeMethod()
        {
            using (FileStream fs = new FileStream("1.bin", FileMode.Open))
            {
                BinaryFormatter bf = new BinaryFormatter();
                Person list = bf.Deserialize(fs) as Person;
            }
        }

        static void SerializeMethod(Person  listpers)

        {
            using (FileStream fs = new FileStream("1.bin", FileMode.OpenOrCreate))
            {
                BinaryFormatter bf = new BinaryFormatter();
                bf.Serialize(fs, listpers);
            }
        }
    }

    [Serializable]
    class Person
    {
        public Person() { }
        public Person(string name, int age)
        {
            this.Name = name; this.Age = age;
        }

        private string name;

        public string Name { get => name; set => name = value; }

        [NonSerialized]
        private int age;//不序列化该对象

        public int Age { get => age; set => age = value; }

        public void SayHi() { Console.WriteLine("大家好,我是{0},今年{1}岁", name, age); }

    }
}

标签:name,age,System,用法,Person,using,new,序列化
From: https://www.cnblogs.com/yuanqi99977/p/16617454.html

相关文章

  • Java中枚举配合switch语句用法-2022新项目
    一、业务场景项目开发中经常会遇到多条件判断的情况,如果判断条件少的话使用if/elseif/else还比较好处理,如果判断条件多的话,则在使用这种语句就不太合适。如果是自定......
  • Vue3中插槽(slot)用法汇总
    Vue中的插槽相信使用过Vue的小伙伴或多或少的都用过,但是你是否了解它全部用法呢?本篇文章就为大家带来Vue3中插槽的全部用法来帮助大家查漏补缺。什么是插槽简单来说就是......
  • fastjson反序列化CNVD-2019-22238
    漏洞原理:fastjson是阿里的开源json解析库,用来将json字符串反序列化为JavaBean类,或者将JavaBean类序列化为json字符串。在java审计中,需要关注的关键字:JSON.parse,......
  • linux学习——Tab键用法
    笔记来自琼杰笔记一、命令补全1、命令补全内部命令:外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻已给定命令命名的文件,第一次找到的命令即为要执行......
  • Element Ui使用技巧——Form表单的校验规则rules详细说明;element的 form 表单rules详
    介绍 Form组件提供了表单验证的功能,只需要通过rules属性传入约定的验证规则,并将Form-Item的prop属性设置为需校验的字段名即可。校验规则参见async-validator文档......
  • restTemplate基本用法
    1@Data2classUser{3privateStringname;4privateDoubleprice;5}6//get请求无参数7@Test8voidfun1()......
  • ASP.NET Core 6框架揭秘实例演示[33]:异常处理高阶用法
    NuGet包“Microsoft.AspNetCore.Diagnostics”中提供了几个与异常处理相关的中间件,我们可以利用它们将原生的或者定制的错误信息作为响应内容发送给客户端。《错误页面的N......
  • Json用法
    1.什么是jsonJSON(JavaScriptObjectNotation,JS对象简谱)是一种轻量级的数据交换格式。它基于ECMAScript(EuropeanComputerManufacturersAssociation,欧洲计算机协......
  • C++反序列化--一种基于class infomation反射库的反序列化数据结构
    序列化与反序列化概念:将程序的某些数据存储在内存中,然后将其写入某个文件或是将它传输到网络中的另一台计算机上以实现通讯。这个将程序数据转化成能被存储并传输的格式的......
  • Synchronized用法
    synchronized是Java中的关键字,是一种同步锁。@synchronized 的作用是创建一个互斥锁,保证此时没有其它线程对self对象进行修改,保证代码的安全性。也就是包装这段代码是原......