最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

.net實(shí)現(xiàn)序列化與反序列化實(shí)例解析

 更新時(shí)間:2014年08月18日 11:42:53   投稿:shichen2014  
這篇文章主要介紹了.net實(shí)現(xiàn)序列化與反序列化實(shí)例解析,需要的朋友可以參考下

序列化與反序列化是.net程序設(shè)計(jì)中常見的應(yīng)用,本文即以實(shí)例展示了.net實(shí)現(xiàn)序列化與反序列化的方法。具體如下:

一般來說,.net中的序列化其實(shí)就是將一個(gè)對(duì)象的所有相關(guān)的數(shù)據(jù)保存為一個(gè)二進(jìn)制文件(注意:是一個(gè)對(duì)象)

而且與這個(gè)對(duì)象相關(guān)的所有類型都必須是可序列化的所以要在相關(guān)類中加上 [Serializable]特性

對(duì)象類型包括:對(duì)象本身包含的類型,父類

擁有需要的對(duì)象之后:

1.將對(duì)象轉(zhuǎn)換為二進(jìn)制數(shù)據(jù) 使用專門的對(duì)像進(jìn)行轉(zhuǎn)換 BinaryFormatter

2.將二進(jìn)制數(shù)據(jù)寫入到文件 FileSteam

反序列化則是把二進(jìn)制文件轉(zhuǎn)換為一個(gè)對(duì)象

示例代碼如下所示:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace ConsoleApplication1
{
  class Program
  {
    static void Main(string[] args)
    {
      Person per;//將要被序列化的對(duì)象
      Console.WriteLine("------序列化與反序列化------");
      Console.WriteLine("是否讀取已經(jīng)序列化的對(duì)象per");
      string str = Console.ReadLine();
      if (str == "yes")
      {
        if (!File.Exists("save.bin"))
        {
          Console.WriteLine("你還沒有將per序列化");
          return;
        }
        using (FileStream fs = new FileStream("save.bin", FileMode.Open))
        {
          BinaryFormatter bf = new BinaryFormatter();
          per = bf.Deserialize(fs) as Person;//將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為per對(duì)象
          per.SayHi();
          Console.ReadLine();
        }
      }
      else
      {
        per = new Person();
        per.Name = "小李";
        using(FileStream fs=new FileStream("save.bin",FileMode.Create))
        {
          BinaryFormatter bf = new BinaryFormatter();
          bf.Serialize(fs,per);//將per對(duì)象轉(zhuǎn)換成二進(jìn)制數(shù)據(jù),并保存。
          Console.WriteLine("序列化成功");
          Console.ReadLine();
        }
      }
        
    }
  }
  [Serializable]
  class Person
  {
    public string Name;
    public void SayHi()
    {
      Console.WriteLine("hello {0}",Name);
    }
  }
}

相信本文實(shí)例對(duì)于大家進(jìn)一步理解.net的序列化與反序列化有一定的借鑒幫助作用。

相關(guān)文章

  • 如何利用C#打印九九乘法表

    如何利用C#打印九九乘法表

    這篇文章主要給大家介紹了關(guān)于如何利用C#打印九九乘法表的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • C#實(shí)現(xiàn)圖片縮略圖功能的示例詳解

    C#實(shí)現(xiàn)圖片縮略圖功能的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)圖片縮略圖的功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • C# Socket網(wǎng)絡(luò)編程實(shí)例

    C# Socket網(wǎng)絡(luò)編程實(shí)例

    這篇文章主要介紹了C# Socket網(wǎng)絡(luò)編程實(shí)例,分析了Socket網(wǎng)絡(luò)通信的原理與具體應(yīng)用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01
  • C# 開發(fā)日志本地化工具

    C# 開發(fā)日志本地化工具

    這篇文章主要介紹了C# 開發(fā)日志本地化工具的步驟,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-02-02
  • 基于XSLT調(diào)試的相關(guān)問題

    基于XSLT調(diào)試的相關(guān)問題

    本篇文章是對(duì)XSLT調(diào)試的相關(guān)問題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C#中一些你可能沒用過的調(diào)試窗口的方法

    C#中一些你可能沒用過的調(diào)試窗口的方法

    其他窗口比較常用,就不介紹了,是不是有一些你沒用到的窗口呢?
    2013-05-05
  • C#調(diào)用易語言寫的Dll文件方法

    C#調(diào)用易語言寫的Dll文件方法

    在本篇內(nèi)容里小編給大家分享的是關(guān)于C#調(diào)用易語言寫的Dll文件的方法內(nèi)容,需要的參考下。
    2018-12-12
  • 如何利用反射構(gòu)建元數(shù)據(jù)查看器

    如何利用反射構(gòu)建元數(shù)據(jù)查看器

    本篇文章是對(duì)反射構(gòu)建元數(shù)據(jù)查看器進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • C#下解析HTML的兩種方法介紹

    C#下解析HTML的兩種方法介紹

    用System.Net.WebClient下載Web Page存到本地文件或者String中,用正則表達(dá)式來分析。這個(gè)方法可以用在Web Crawler等需要分析很多Web Page的應(yīng)用中
    2013-09-09
  • winform獲取當(dāng)前名稱實(shí)例匯總

    winform獲取當(dāng)前名稱實(shí)例匯總

    這篇文章主要介紹了winform獲取當(dāng)前名稱實(shí)例匯總,包括常見的目錄名、文件名、路徑等,非常實(shí)用,需要的朋友可以參考下
    2014-10-10

最新評(píng)論

麻城市| 福建省| 永和县| 罗源县| 镇江市| 赤峰市| 丰台区| 三穗县| 县级市| 景宁| 子长县| 松江区| 阿拉尔市| 班戈县| 临朐县| 汽车| 玛纳斯县| 宝丰县| 襄城县| 海兴县| 宁津县| 大厂| 光泽县| 边坝县| 凌海市| 得荣县| 苏尼特右旗| 南陵县| 禄丰县| 任丘市| 淮南市| 乐安县| 阿坝县| 玉门市| 长岛县| 麻城市| 工布江达县| 翁牛特旗| 佛冈县| 万源市| 襄城县|