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
에 결과를 저장했습니다.
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