• C# 序列化(Binary、Xml、Soap)


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    using System.Xml.Serialization;
    using System.Runtime.Serialization.Formatters.Binary;
    using System.Runtime.Serialization.Formatters.Soap;
    
    namespace Serialization
    {
        class Program
        {
            static void Main(string[] args)
            {
                Student stu = new Student("张三", 30, "登山");
                
                ////二进制序列化
                //BinaryFormatter bf = new BinaryFormatter();
                //FileStream fs = new FileStream(@"D:stu.ss", FileMode.Create);
                //bf.Serialize(fs, stu);
                //fs.Close();
    
                ////二进制反序列化
                //BinaryFormatter bf = new BinaryFormatter();
                //FileStream fs = new FileStream(@"D:stu.ss", FileMode.Open);
                //Student student = (Student)bf.Deserialize(fs);
                //student.method();
    
                ////xml序列化
                //XmlSerializer xml = new XmlSerializer(typeof(Student));
                //FileStream fs = new FileStream(@"D:stu.xml",FileMode.Create);
                //xml.Serialize(fs, stu);
                //fs.Close();
    
                ////xml反序列化
                //XmlSerializer xml = new XmlSerializer(typeof(Student));
                //FileStream fs = new FileStream(@"D:stu.xml", FileMode.Open);
                //Student student = (Student)xml.Deserialize(fs);
                //student.method();
    
                ////soap序列化
                //SoapFormatter soap = new SoapFormatter();
                //FileStream fs = new FileStream(@"D:stu.soap", FileMode.Create);
                //soap.Serialize(fs, stu);
                //fs.Close();
    
                //soap反序列化
                SoapFormatter soap = new SoapFormatter();
                FileStream fs = new FileStream(@"D:stu.soap", FileMode.Open);
                Student student = (Student)soap.Deserialize(fs);
                student.method();
    
                
            }
        }
    
    
        [Serializable]
        public class Person
        {
            public Person()
            {
    
            }
    
            public Person(string name, int age)
            {
                this.Name = name;
                this.Age = age;
            }
    
            public string Name
            {
                get;
                set;
            }
            public int Age
            {
                get;
                set;
            }
        }
    
        [Serializable]
        public class Student : Person
        {
            public Student()
            {
    
            }
    
            public Student(string name, int age, string hobby)
                : base(name, age)
            {
                this.Hobby = hobby;
            }
    
            public string Hobby
            {
                get;
                set;
            }
    
            public void method()
            {
                Console.WriteLine("大家好,我叫{0},今年{1}岁,我喜欢{2}", this.Name, this.Age, this.Hobby);
                //Console.ReadLine();
            }
        }
    }
    View Code
  • 相关阅读:
    C语言不定参数
    C和C++中的不定参数
    C/C++ 中头文件相互包含引发的问题
    Makefile经典教程(掌握这些足够)
    C语言中volatile关键字的作用
    C++中字符数组与string的相互转换
    C++中 使用数组作为map容器VAlue值的解决方法
    sql 内连接、外连接、自然连接等各种连接
    网站小图标
    Eclipse:快捷
  • 原文地址:https://www.cnblogs.com/ZJ199012/p/4151341.html
Copyright © 2020-2023  润新知