[c#] C#에서의 Binary 직렬화 방법
C#에서는 BinaryFormatter 클래스를 사용하여 개체를 바이너리 형식으로 직렬화하고 역직렬화할 수 있습니다. 바이너리 직렬화를 사용하면 객체를 바이너리 데이터로 변환하여 파일에 저장하거나 네트워크를 통해 전송할 수 있습니다.
직렬화
using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]
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
로 표시하고, BinaryFormatter
를 사용하여 객체를 직렬화하고 FileStream
을 사용하여 파일에 쓰기 작업을 수행합니다.
역직렬화
static void Main()
{
BinaryFormatter formatter = new BinaryFormatter();
using (FileStream stream = new FileStream("person.bin", FileMode.Open))
{
Person person = (Person)formatter.Deserialize(stream);
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
}
위의 예제에서는 BinaryFormatter
를 사용하여 파일로부터 객체를 역직렬화하고 이를 통해 원래의 개체를 다시 만들 수 있습니다.
이러한 방식으로 C#에서 객체를 바이너리 형식으로 직렬화하고 역직렬화할 수 있습니다. 이는 특히 파일 또는 네트워크를 통해 데이터를 전송할 때 유용합니다.
참고문헌: