[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 직렬화 및 역직렬화를 수행할 수 있습니다. 이러한 기술은 파일 또는 네트워크를 통해 객체를 전송하거나 저장하는 데 유용합니다.
참고 문헌:
- https://docs.microsoft.com/en-us/dotnet/api/system.runtime.serialization.formatters.binary.binaryformatter?view=net-5.0
다음은 binary 직렬화 및 역직렬화의 특징과 중요성에 대해 살펴볼 것입니다.
부가적으로 언급했으면 좋겠던 부분:
- Binary Serialization의 특징
- Binary Serialization의 장단점
- Binary Serialization을 사용하는 실제 상황들
깃허브저장소에 완성된 코드가 있으면 그것과 연결이 가능하다면 연결 부탁드립니다.