[c#] C# XML 직렬화와 역직렬화 예제

XML은 데이터를 저장하고 전송하는 데 널리 사용되는 형식입니다. C#에서는 XML을 이용하여 데이터를 객체로 변환하고 객체를 XML로 변환할 수 있는 직렬화(serialization)역직렬화(deserialization)를 지원합니다.

XML 직렬화(Serialization)

using System;
using System.IO;
using System.Xml.Serialization;

public class Student
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        Student student = new Student { Name = "John", Age = 20 };

        XmlSerializer serializer = new XmlSerializer(typeof(Student));
        using (TextWriter writer = new StreamWriter("student.xml"))
        {
            serializer.Serialize(writer, student);
        }
    }
}

위 예제는 Student 클래스의 객체를 XML 파일로 직렬화합니다. XmlSerializer 클래스를 사용하여 객체를 XML 형식으로 변환하고, StreamWriter를 이용하여 XML 파일에 쓰기 작업을 수행합니다.

XML 역직렬화(Deserialization)

using System;
using System.IO;
using System.Xml.Serialization;

public class Student
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        XmlSerializer serializer = new XmlSerializer(typeof(Student));
        using (TextReader reader = new StreamReader("student.xml"))
        {
            Student student = (Student)serializer.Deserialize(reader);
            Console.WriteLine($"Name: {student.Name}, Age: {student.Age}");
        }
    }
}

이 예제는 XML 파일을 읽어 Student 객체로 역직렬화하는 과정을 보여줍니다. XmlSerializerDeserialize 메서드를 사용하여 XML 파일을 읽고, 이를 Student 객체로 변환합니다.

XML 직렬화와 역직렬화를 사용하면 C# 애플리케이션에서 객체를 XML로 저장하거나 XML에서 객체를 다시 읽어올 수 있습니다.

이와 관련된 더 자세한 정보는 MSDN 문서에서 확인할 수 있습니다.