본문 바로가기
C# 기술

[C#] Class 를 file 로 저장/로드하기 (class to file, file to class) Serialize

by bryan.oh 2021. 4. 4.
반응형

Class 를 File 로 저장/로드

 

대상 class 

일단 아래와 같은 class 가 있고,

이 class 를 file 로 저장하려고 하면, 상단에 [Serializable] 을 붙혀줍니다.

[Serializable]  // 추가
public class CateInfo
{
    public CateInfo(string name, string link, int depth)
    {
        this.name = name;
        this.link = link;
        this.depth = depth;
    }
    public string name { get; set; }
    public string link { get; set; }
    public int depth { get; set; }
}

 

using 및 선언

  - 사용 할 class에서

// 상단에
using System.Runtime.Serialization.Formatters.Binary;

// class 안에
private BinaryFormatter binaryFormatter = new BinaryFormatter();

 

사용

- Class to File

public void saveToFile(CateInfo cateInfo, string path)
{
    if (File.Exists(path))
        File.Delete(path);
    using (Stream stream = File.Open(path, FileMode.Create))
        binaryFormatter.Serialize(stream, cateInfo);
}

- File to Class

public CateInfo loadTempData(String path)
{
    if (File.Exists(path))
    {
        using (Stream stream = File.Open(path, FileMode.Open))
        {
            return (CateInfo)binaryFormatter.Deserialize(stream);
        }
    }
    throw new System.Exception("File not found! : " + path);
}

 

 

(혹시 오타있면 알려주세요~ XD)

 

 

 

 

 

 

 

728x90
반응형

댓글