亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#實現對象XML序列化的方法

2020-01-24 02:18:13
字體:
來源:轉載
供稿:網友

本文實例講述了C#實現對象XML序列化的方法。分享給大家供大家參考。具體實現方法如下:

復制代碼 代碼如下:
using system;
using system.xml;
using system.xml.serialization;
using system.text;
using system.io;
public class util
{
    /// <summary>
    /// 對象序列化成 xml string
    /// </summary>
    public static string xmlserialize<t>(t obj)
    {
        string xmlstring = string.empty;
        xmlserializer xmlserializer = new xmlserializer(typeof(t));
        using (memorystream ms = new memorystream())
        {
            xmlserializer.serialize(ms, obj);
            xmlstring = encoding.utf8.getstring(ms.toarray());
        }
        return xmlstring;
    }
    /// <summary>
    /// xml string 反序列化成對象
    /// </summary>
    public static t xmldeserialize<t>(string xmlstring)
    {
        t t = default(t);
        xmlserializer xmlserializer = new xmlserializer(typeof(t));
        using (stream xmlstream = new memorystream(encoding.utf8.getbytes(xmlstring)))
        {
            using (xmlreader xmlreader = xmlreader.create(xmlstream))
            {
                object obj = xmlserializer.deserialize(xmlreader);
                t = (t)obj;
            }
        }
        return t;
    }
}

stringwriter,xmlserializer將對象、對象集合序列化為xml格式的字符串, 同時描述如何進行反序列化.

c# 序列化 xmlserializer,binaryformatter,soapformatter

復制代碼 代碼如下:
//radio.cs
using system;
using system.collections.generic;
using system.text;
namespace simpleserialize
{
  [serializable]
  public class radio
  {
    public bool hastweeters;
    public bool hassubwoofers;
    public double[] stationpresets;
    [nonserialized]
    public string radioid = "xf-552rr6";
  }
}
//cars.cs
using system;
using system.collections.generic;
using system.text;
using system.xml.serialization;
namespace simpleserialize
{
  [serializable]
  public class car
  {
    public radio theradio = new radio();
    public bool ishatchback;
  }
  [serializable, xmlroot(namespace = "http://www.intertech.com")]
  public class jamesbondcar : car
  {
    [xmlattribute]
    public bool canfly;
    [xmlattribute]
    public bool cansubmerge;
    public jamesbondcar(bool skyworthy, bool seaworthy)
    {
      canfly = skyworthy;
      cansubmerge = seaworthy;
    }
    // the xmlserializer demands a default constructor!
    public jamesbondcar() { }
  }
}

復制代碼 代碼如下:
//program.cs
using system;
using system.collections.generic;
using system.text;
using system.io;
// for the formatters.
using system.runtime.serialization.formatters.binary;
using system.runtime.serialization.formatters.soap;
using system.xml.serialization;
namespace simpleserialize
{
  class program
  {
    static void main(string[] args)
    {
      console.writeline("***** fun with object serialization *****n");
      // make a jamesbondcar and set state.
      jamesbondcar jbc = new jamesbondcar();
      jbc.canfly = true;
      jbc.cansubmerge = false;
      jbc.theradio.stationpresets = new double[] { 89.3, 105.1, 97.1 };
      jbc.theradio.hastweeters = true;
      // now save / load the car to a specific file.
      saveasbinaryformat(jbc, "cardata.dat");
      loadfrombinaryfile("cardata.dat");
      saveassoapformat(jbc, "cardata.soap");
      saveasxmlformat(jbc, "cardata.xml");
      savelistofcars();
      savelistofcarsasbinary();
      console.readline();
    }
    #region save / load as binary format
    static void saveasbinaryformat(object objgraph, string filename)
    {
      // save object to a file named cardata.dat in binary.
      binaryformatter binformat = new binaryformatter();
      using (stream fstream = new filestream(filename,
            filemode.create, fileaccess.write, fileshare.none))
      {
        binformat.serialize(fstream, objgraph);
      }
      console.writeline("=> saved car in binary format!");
    }
    static void loadfrombinaryfile(string filename)
    {
      binaryformatter binformat = new binaryformatter();
      // read the jamesbondcar from the binary file.
      using (stream fstream = file.openread(filename))
      {
        jamesbondcar carfromdisk =
          (jamesbondcar)binformat.deserialize(fstream);
        console.writeline("can this car fly? : {0}", carfromdisk.canfly);
      }
    }
    #endregion
    #region save as soap format
    // be sure to import system.runtime.serialization.formatters.soap
    // and reference system.runtime.serialization.formatters.soap.dll.
    static void saveassoapformat(object objgraph, string filename)
    {
      // save object to a file named cardata.soap in soap format.
      soapformatter soapformat = new soapformatter();
      using (stream fstream = new filestream(filename,
        filemode.create, fileaccess.write, fileshare.none))
      {
        soapformat.serialize(fstream, objgraph);
      }
      console.writeline("=> saved car in soap format!");
    }
    #endregion
    #region save as xml format
    static void saveasxmlformat(object objgraph, string filename)
    {
      // save object to a file named cardata.xml in xml format.
      xmlserializer xmlformat = new xmlserializer(typeof(jamesbondcar),
        new type[] { typeof(radio), typeof(car) });
      using (stream fstream = new filestream(filename,
        filemode.create, fileaccess.write, fileshare.none))
      {
        xmlformat.serialize(fstream, objgraph);
      }
      console.writeline("=> saved car in xml format!");
    }
    #endregion
    #region save collection of cars
    static void savelistofcars()
    {
      // now persist a list<> of jamesbondcars.
      list<jamesbondcar> mycars = new list<jamesbondcar>();
      mycars.add(new jamesbondcar(true, true));
      mycars.add(new jamesbondcar(true, false));
      mycars.add(new jamesbondcar(false, true));
      mycars.add(new jamesbondcar(false, false));
      using (stream fstream = new filestream("carcollection.xml",
        filemode.create, fileaccess.write, fileshare.none))
      {
        xmlserializer xmlformat = new xmlserializer(typeof(list<jamesbondcar>),
          new type[] { typeof(jamesbondcar), typeof(car), typeof(radio) });
        xmlformat.serialize(fstream, mycars);
      }
      console.writeline("=> saved list of cars!");
    }
    static void savelistofcarsasbinary()
    {
      // save arraylist object (mycars) as binary.
      list<jamesbondcar> mycars = new list<jamesbondcar>();
      binaryformatter binformat = new binaryformatter();
      using (stream fstream = new filestream("allmycars.dat",
        filemode.create, fileaccess.write, fileshare.none))
      {
        binformat.serialize(fstream, mycars);
      }
      console.writeline("=> saved list of cars in binary!");
    }
    #endregion
  }
}

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日本亚洲视频| 国产精品夜色7777狼人| 亚洲欧美中文日韩v在线观看| 日韩av影视综合网| 日韩精品极品毛片系列视频| 亚洲午夜性刺激影院| 成人久久精品视频| 亚洲男人天堂手机在线| 亚洲经典中文字幕| 九九九热精品免费视频观看网站| 亚洲免费精彩视频| 久久深夜福利免费观看| 亚洲春色另类小说| 色999日韩欧美国产| 久久成年人免费电影| 国产精品久久久久久久久久99| 亚洲欧美精品在线| 中文字幕在线视频日韩| 91国内精品久久| 日韩在线精品视频| 欧美性高潮床叫视频| 91亚洲午夜在线| 91国内揄拍国内精品对白| 久久影院资源站| 美女视频久久黄| 亚洲香蕉av在线一区二区三区| 国产日韩在线播放| 欧美激情精品久久久久久免费印度| 91精品国产99久久久久久| 亚洲欧洲国产精品| 欧美成年人网站| 中文字幕日韩视频| 国产日韩精品一区二区| 国产美女精品视频| 亚洲欧美色婷婷| 久久精品99久久久香蕉| 日韩综合视频在线观看| 日韩av高清不卡| 欧美最猛性xxxxx亚洲精品| 欧美日韩中文在线观看| 久久人人爽人人爽人人片av高请| 在线视频国产日韩| 国产中文字幕日韩| 欧美成人免费在线视频| 亚洲精品中文字幕女同| 日韩免费观看网站| 国产精品免费网站| 91国产美女视频| 亚洲国产私拍精品国模在线观看| 国产欧美中文字幕| 国产免费一区二区三区香蕉精| 亚洲国产精品成人一区二区| 成人免费激情视频| 亚洲精品720p| 日韩va亚洲va欧洲va国产| 精品国产一区二区三区久久久| 成人妇女免费播放久久久| 久久久久久久久久久久久久久久久久av| 激情成人中文字幕| 日韩av免费看| 久久免费精品日本久久中文字幕| 亚洲成年网站在线观看| 欧美午夜美女看片| 色伦专区97中文字幕| 亚洲女在线观看| 欧美日韩国产成人高清视频| 在线播放国产一区中文字幕剧情欧美| 主播福利视频一区| 成人字幕网zmw| 亚洲精品美女久久久| 国产精品一区二区女厕厕| 欧美日韩国产成人高清视频| 日韩中文字幕网址| 激情久久av一区av二区av三区| 在线成人激情黄色| 久久伊人色综合| 久久精品久久久久久| 日韩av影片在线观看| 国外色69视频在线观看| 91精品国产自产在线观看永久| 国产精品第2页| 亚洲国产精品人人爽夜夜爽| 国产成人亚洲综合91| 久久亚洲精品中文字幕冲田杏梨| 中文字幕日韩欧美| 亚洲精品久久久久久久久久久久久| 亚洲91精品在线观看| 国产精品久久久久久久久久新婚| 中文字幕日韩欧美| 黑人狂躁日本妞一区二区三区| 亚洲www永久成人夜色| 日韩一级黄色av| 97视频com| 欧美贵妇videos办公室| 日韩一区二区在线视频| 91中文字幕在线| 国产日韩中文字幕在线| 欧美小视频在线| 高清一区二区三区四区五区| 黑人精品xxx一区| 久久中文字幕在线视频| 成人av番号网| 中文字幕日韩免费视频| 国产亚洲精品一区二区| 91av在线国产| 在线成人中文字幕| 久久精品国产一区| 亚洲欧美日韩精品久久亚洲区| 国产极品精品在线观看| 国产精品对白刺激| 91精品久久久久久久久久久| 成人av在线网址| 久久噜噜噜精品国产亚洲综合| 性欧美视频videos6一9| 国产成人激情小视频| 深夜福利亚洲导航| 欧美一级视频免费在线观看| 日本成熟性欧美| 在线电影欧美日韩一区二区私密| 亚洲欧洲日本专区| 国内精品久久久久久久久| 成人国内精品久久久久一区| 97国产一区二区精品久久呦| 国产aaa精品| 2019中文字幕在线免费观看| 国产成人综合精品在线| 国产精品久久综合av爱欲tv| 色琪琪综合男人的天堂aⅴ视频| 日韩成人性视频| 亚洲区在线播放| 欧美日韩中国免费专区在线看| 亚洲精品国产精品国自产在线| 欧美成人精品影院| 亚洲一二在线观看| 国产精品久久久久久久久久三级| 成人美女免费网站视频| 精品视频在线观看日韩| 国产精品视频一区二区高潮| 91黄色8090| 欧美裸体xxxx极品少妇软件| 国产精品久久久久久久久免费| 91精品国产91久久久久久久久| 国产精品无码专区在线观看| 日韩欧美成人网| 中文字幕久热精品在线视频| 国产精品自拍小视频| 久久九九免费视频| 2020久久国产精品| 日韩精品中文在线观看| 亚洲成在人线av| 日韩亚洲国产中文字幕| 日韩有码在线播放| 欧美有码在线观看视频| 一区二区三区亚洲| 精品久久久久久中文字幕大豆网| 中文字幕亚洲一区二区三区五十路| 欧美精品日韩www.p站| 成人天堂噜噜噜| 久久久噜噜噜久噜久久| 欧美中文字幕在线| 亚洲女人天堂色在线7777| 亚洲欧美国产精品久久久久久久| 亚洲色图校园春色| 欧美日韩精品中文字幕|