• asp.net 序列化和反序列化


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    using System.Xml.Serialization;
    
    namespace Serialize
    {
        class Program
        {
            static void Main(string[] args)
            {
                var key = Console.ReadLine();
                switch (key)
                {
                    case "1":
                        Serialize();
                        break;
                    case "2":
                        DeSerialize();
                        break;
                    case "3":
                        DeSerializeList();
                        break;
                    case "4":
                        DeSerializeList();
                        break;
                }
            }
    
            /// <summary>
            /// 序列化一个对象
            /// </summary>
            static void Serialize()
            {
                Users users = new Users();
                users.Name = "Furysi";
                users.Age = 25;
                users.Address = "ShangHai";
                XmlSerializer xmlSerialize = new XmlSerializer(typeof(Users));
                using (Stream stream = new FileStream("test.xml", FileMode.Create, FileAccess.Write))
                {
                    xmlSerialize.Serialize(stream, users);
                }
                Console.WriteLine("OK"); Console.ReadLine();//加这行是为了方便查看结果
            }
    
            /// <summary>
            /// 反序列化一个对象
            /// </summary>
            static void DeSerialize()
            {
                Users users = new Users();
                XmlSerializer xmlSerializer = new XmlSerializer(typeof(Users));
                using (Stream stream = new FileStream("test.xml", FileMode.Open, FileAccess.Read))
                {
                    users = (Users)xmlSerializer.Deserialize(stream);
                }
                Console.WriteLine("Name:" + users.Name);
                Console.WriteLine("Age:" + users.Age);
                Console.WriteLine("Address:" + users.Address);
                Console.ReadLine();//加这行是为了方便查看结果
    
            }
    
    
            /// <summary>
            /// 序列化一个集合
            /// </summary>
            static void SerializeList()
            {
                List<Users> list = new List<Users>() 
                {
                   new Users(){ Name="AAA",Age=25,Address="ShangHai"},
                   new Users(){ Name="BBB",Age=26,Address="BeiJing"},
                   new Users(){ Name="CCC",Age=27,Address="ShenZhen"}
                };
                XmlSerializer xmlSerialize = new XmlSerializer(typeof(List<Users>));
                using (Stream stream = new FileStream("test.xml", FileMode.Create, FileAccess.Write))
                {
                    xmlSerialize.Serialize(stream, list);
                }
                Console.WriteLine("OK");
                Console.ReadLine();//加这行是为了方便查看结果
            }
    
            /// <summary>
            /// 反序列化一个集合
            /// </summary>
            static void DeSerializeList()
            {
                List<Users> list = new List<Users>();
                Users users = new Users();
                XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<Users>));
                using (Stream stream = new FileStream("test.xml", FileMode.Open, FileAccess.Read))
                {
                    list = (List<Users>)xmlSerializer.Deserialize(stream);
                }
                foreach (var item in list)
                {
                    Console.WriteLine("Name:" + item.Name);
                    Console.WriteLine("Age:" + item.Age);
                    Console.WriteLine("Address:" + item.Address);
                }
                Console.ReadLine();//加这行是为了方便查看结果
            }
        }
    
        public class Users
        {
            public string Name { get; set; }
    
            public int Age { get; set; }
    
            public string Address { get; set; }
        }
    }

    序列化是将对象转换为字节流以将其保存在内存、数据库或文件中的过程。其主要目的是保存对象的状态,以便可以在需要时重新创建对象。相反的过程称为反序列化。
        对象被序列化为流。流传递的不仅是数据,还包括有关对象类型的信息,如对象的版本、区域性和程序集名称。通过该流,可以将对象存储在数据库、文件或内存中。
        通过序列化,开发人员还可以执行类似如下的操作:通过 Web 服务将对象发送到远程应用程序、将对象从一个域传递到另一个域、以 XML 字符串的形式跨防火墙传递对象,或者跨应用程序维护安全信息或用户特定信息。

  • 相关阅读:
    苹果新政,禁止开发者在App中加入检查更新功能
    Xcode 的正确打开方式——Debugging(转)
    AlertView + Block 的使用
    iOS 中Window优先级的问题
    iOS加载启动图的时候隐藏statusbar + 指定启动图显示多少秒
    eclispe+axis2+webservice入门
    Eclispe远程调试tomcat设置
    华为入职培训小计
    Java面试题总结 from Baidu 网易 阿里
    使用MyEclipse 9.0 创建 struts2 的HelloWorld 工程
  • 原文地址:https://www.cnblogs.com/webyu/p/2997189.html
Copyright © 2020-2023  润新知