[c#] C# Binary 직렬화 및 역직렬화 예제

이 포스트에서는 C#에서 객체를 binary 형식으로 직렬화하고 다시 역직렬화하는 방법에 대해 알아보겠습니다.

직렬화(Serialization)

C#에서 객체를 binary로 직렬화하려면 BinaryFormatter 클래스를 사용합니다. 아래는 Serialize 메서드를 사용하여 객체를 binary로 직렬화하는 예제 코드입니다.

using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

[Serializable]
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John", Age = 30 };

        BinaryFormatter formatter = new BinaryFormatter();
        using (FileStream stream = new FileStream("person.bin", FileMode.Create))
        {
            formatter.Serialize(stream, person);
        }
    }
}

위 코드에서 Person 클래스는 [Serializable] 어트리뷰트를 사용하여 직렬화할 수 있도록 표시되었습니다. Serialize 메서드를 이용하여 Person 객체를 person.bin 파일에 binary로 직렬화했습니다.

역직렬화(Deserialization)

이제 person.bin 파일로부터 객체를 역직렬화하는 방법을 살펴보겠습니다. 아래는 Deserialize 메서드를 사용하여 객체를 역직렬화하는 예제 코드입니다.

class Program
{
    static void Main()
    {
        Person person;
        BinaryFormatter formatter = new BinaryFormatter();
        using (FileStream stream = new FileStream("person.bin", FileMode.Open))
        {
            person = (Person)formatter.Deserialize(stream);
        }

        Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
    }
}

위 코드에서 Deserialize 메서드를 사용하여 person.bin 파일로부터 Person 객체를 역직렬화하고, 그 결과를 콘솔에 출력했습니다.

이렇게 C#에서 binary 직렬화 및 역직렬화를 수행할 수 있습니다. 이러한 기술은 파일 또는 네트워크를 통해 객체를 전송하거나 저장하는 데 유용합니다.

참고 문헌:

다음은 binary 직렬화 및 역직렬화의 특징과 중요성에 대해 살펴볼 것입니다.

부가적으로 언급했으면 좋겠던 부분:

깃허브저장소에 완성된 코드가 있으면 그것과 연결이 가능하다면 연결 부탁드립니다.