C#에서 개체를 XML로 serialize

Muhammad Maisam Abbas 2024년2월16일
C#에서 개체를 XML로 serialize

이 자습서에서는 클래스 개체를 C#의 XML 파일 또는 문자열로 직렬화하는 방법에 대해 설명합니다.

C#의XmlSerializer클래스를 사용하여 객체를 XML로 직렬화

직렬화는 클래스 객체를 XML 또는 이진 형식으로 변환하는 것을 의미합니다. XmlSerializer클래스는 C#에서 클래스 객체를 XML로 또는 그 반대로 변환합니다. XmlSerializer.Serialize()메소드는 클래스 객체의 모든 공용 필드와 속성을 XML 형식으로 변환합니다. 클래스를 XML 파일이나 문자열에 쓰려면public액세스 지정자를 사용하여 클래스를 정의해야합니다. 다음 코드 예제는 C#의XmlSerializer클래스를 사용하여 클래스 객체를 XML 문자열 변수로 직렬화하는 방법을 보여줍니다.

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

namespace serialize_object {
  public class Sample {
    public string value { get; set; }
  }
  class Program {
    static void Main(string[] args) {
      Sample obj = new Sample();
      obj.value = "this is some value";
      string xml = "";
      XmlSerializer serializer = new XmlSerializer(typeof(Sample));
      using (var sww = new StringWriter()) {
        using (XmlWriter writer = XmlWriter.Create(sww)) {
          serializer.Serialize(writer, obj);
          xml = sww.ToString();  // Your XML
        }
      }
      Console.WriteLine(xml);
    }
  }
}

출력:

<?xml version="1.0" encoding="utf-16"?><Sample xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema"><value>this is some value</value></Sample>

위 코드에서Sample클래스의obj객체를 C#의XmlSerializer.Serialize()함수를 사용하여 XML 문자열 변수xml로 직렬화했습니다. 먼저typeof(Sample)매개 변수를 전달하여XmlSerializer클래스의 인스턴스를 초기화했습니다. 이것은Sample유형의XmlSerializer클래스의 인스턴스를 작성합니다. 그런 다음StringWriter클래스의 인스턴스를 만들어 데이터를 문자열 변수에 기록했습니다. 그런 다음XmlWriter클래스의 인스턴스를 만들어StringWriter클래스의 인스턴스에 기록했습니다. 그런 다음serializer.Serialize(writer, obj)를 사용하여StringWriter클래스의 인스턴스에 개체를 작성하고ToString()함수를 사용하여 문자열 변수xml에 결과를 저장했습니다.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

관련 문장 - Csharp XML

관련 문장 - Csharp Object