zoukankan      html  css  js  c++  java
  • 1.基本.NET浅串行化

    浅串行化:只串行化类的公共字段和属性
        公共属性必须是可读且可写的
        使用命名空间:using System.Xml.Serialization;

        以Book类为例:
        串行化模板:
            public void SerializeIt(string filename)
            
    {
                XmlSerializer serializer 
    = new XmlSerializer(typeof(Book));
                StreamWriter writer 
    = new StreamWriter(filename);
                Book myBook 
    = new Book();

                serializer.Serialize(writer, myBook);
                writer.Close();
            }
        
        反串行化模板:
            public void DeserializeIt(string filename)
            
    {
                XmlSerializer serializer 
    = new XmlSerializer(typeof(Book));
                FileStream fs 
    = new FileStream(filename, FileMode.Open);
                Book myBook 
    = (Book)serializer.Deserialize(fs);
                fs.Close();
            }

    *使用XmlSerializer的类必须有一个不带参数的默认构造函数——在反串行化中使用
    *序列化ArrayList类型字段X的特殊处理:在ctor中 this.X = new ArrayList();
    *对于引用关系,如果A中引用了B,那么
        在序列化A的时候,会生成如下格式的XML:
        <A>
            <B>xxxxx</B>
        </A>
        在反序列化A对象的时候,A中也会包含有具体值的B对象
    *浅序列化不支持循环引用,即A引用B的同时,B也引用了A

    序列化时,将XML格式定制为SOAP格式:使用XmlSerializer构造函数的另一个重载:
            public void SerializeIt(string filename)
            
    {
                SoapReflectionImporter import 
    = new SoapReflectionImporter();
                XmlTypeMapping soapMapping 
    = import.ImportTypeMapping(typeof(Book));

                XmlSerializer serializer 
    = new XmlSerializer(soapMapping);


                StreamWriter writer 
    = new StreamWriter(filename);
                Book myBook 
    = new Book();

                serializer.Serialize(writer, myBook);
                writer.Close();
            }


     

  • 相关阅读:
    201805140815_《缓存操作函数封装》
    201802071223_《更换两个二进制》
    201801301359——《注意Javascript这种形式》
    201708310807_《算法-Javascript实现最大公约数》
    重拾java openjdk1.8 语法小试
    代码轮子之很简单但是挺管用的基于C# Task的模拟并发的代码
    docker1.12 安装pxc(Percona XtraDB Cluster )测试
    .net orm比较之dapper和Entity Framework6的简单测试比较
    StackExchange.Redis使用和封装小试
    docker1.12 安装redis3官方集群 攻略
  • 原文地址:https://www.cnblogs.com/Jax/p/929729.html
Copyright © 2011-2022 走看看