.net 서열화 및 반서열화 실례 분석 실현

2295 단어
서열화와 반서열화는net 프로그램 디자인에서 흔히 볼 수 있는 응용은 본고에서 실례를 들어 보여 준다.net에서 서열화와 반서열화를 실현하는 방법구체적으로 다음과 같다.
일반적으로 말하면...net의 서열화는 사실 한 대상의 모든 관련 데이터를 바이너리 파일로 저장하는 것이다. (주의: 대상이다)
그리고 이 대상과 관련된 모든 유형은 서열화되어야 하기 때문에 관련 클래스에 [serializable] 특성을 더해야 합니다.
대상 유형: 대상 자체가 포함하는 유형, 부류
필요한 객체가 있으면 다음을 수행합니다.
1. 객체를 바이너리 데이터로 변환하기 위해 특수 이미지를 사용하여 BinaryFormatter 변환
2. 파일FileSteam에 바이너리 데이터 쓰기
역서열화는 바이너리 파일을 하나의 대상으로 변환하는 것이다
예제 코드는 다음과 같습니다.

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;//         
      Console.WriteLine("------        ------");
      Console.WriteLine("            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;//         per  
          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          ,   。
          Console.WriteLine("     ");
          Console.ReadLine();
        }
      }
        
    }
  }
  [Serializable]
  class Person
  {
    public string Name;
    public void SayHi()
    {
      Console.WriteLine("hello {0}",Name);
    }
  }
}


본문의 실례를 믿고 모두에게 한층 더 이해하다.net의 서열화와 반서열화는 어느 정도 참고 도움이 된다.

좋은 웹페이지 즐겨찾기