Visual C#을 사용하여 개체를 XML로 직렬화
이 문서에서는 Visual C#을 사용하여 개체를 XML(Extensible Markup Language)으로 serialize하는 방법에 대한 메서드를 제공합니다.
원래 제품 버전: Visual Studio
원래 KB 번호: 815813
요약
이 문서에 설명된 메서드는 개체의 상태를 유지하는 데 유용합니다. 이 메서드는 XML을 새 개체로 다시 직렬화 해제하여 개체를 복제하는 데에도 유용합니다.
이 문서에서는 다음 Microsoft .NET Framework 클래스 라이브러리 네임스페이스를 참조합니다.
System.Xml
System.Xml.Serialization
요구 사항
이 문서에서는 다음 항목에 대해 잘 알고 있다고 가정합니다.
- Visual Studio
- XML에 대한 일반적인 숙지
- Visual C에 대한 일반적인 친숙함#
XML serialization
직렬화는 개체의 상태를 가져와서 어떤 방식으로도 유지하는 프로세스입니다. .NET Framework에는 모든 개체를 XML로 직렬화할 수 있는 강력한 개체가 포함되어 있습니다. 네임스페이 System.Xml.Serialization
스는 이 기능을 제공합니다.
다음 단계에 따라 개체를 만든 다음 상태를 XML로 serialize하는 콘솔 애플리케이션을 만듭니다.
Visual C#에서 새 콘솔 애플리케이션 프로젝트를 만듭니다.
프로젝트 메뉴에서 클래스 추가를 선택하여 프로젝트에 새 클래스를 추가합니다.
새 항목 추가 대화 상자에서 클래스의 이름을 clsPerson으로 변경합니다.
추가를 선택합니다. 새 클래스가 만들어집니다.
public 클래스
clsPerson
문 다음에 다음 코드를 추가합니다.public string FirstName; public string MI; public string LastName;
Visual Studio에서 Program.cs 대한 코드 창으로 전환합니다.
메서드에서
void Main
클래스의 인스턴스를 선언하고 만듭니다clsPerson
.clsPerson p = new clsPerson();
개체의 속성을 설정합니다.
clsPerson
p.FirstName = "Jeff"; p.MI = "A"; p.LastName = "Price";
네임스페이스에는
Xml.Serialization
개체를XmlSerializer
XML로 serialize하는 클래스가 포함되어 있습니다. 인스턴스XmlSerializer
를 만들 때 해당 생성자로 직렬화하려는 클래스의 형식을 전달합니다.System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
이
Serialize
메서드는 개체를 XML로 serialize하는 데 사용됩니다. serialize는 오버로드되며 출력을 ,Stream
또는XMLWriter
개체로TextWriter
보낼 수 있습니다. 이 예제에서는 출력을 콘솔로 보냅니다.x.Serialize(Console.Out,p); Console.WriteLine(); Console.ReadLine();
전체 코드 목록
using System;
public class clsPerson
{
public string FirstName;
public string MI;
public string LastName;
}
class class1
{
static void Main(string[] args)
{
clsPerson p=new clsPerson();
p.FirstName = "Jeff";
p.MI = "A";
p.LastName = "Price";
System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
x.Serialize(Console.Out, p);
Console.WriteLine();
Console.ReadLine();
}
}
확인
프로젝트가 작동하는지 확인하려면 Ctrl+F5를 눌러 프로젝트를 실행합니다. clsPerson
개체가 만들어지고 입력한 값으로 채워집니다. 이 상태는 XML로 직렬화됩니다. 콘솔 창에는 다음 코드가 표시됩니다.
<?xml version="1.0" encoding="IBM437"?>
<clsPerson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<FirstName>Jeff</FirstName>
<MI>A</MI>
<LastName>Price</LastName>
</clsPerson>
문제 해결
개체는 Xml.Serialization.XmlSerializer
단순 serialization만 수행합니다. 또한 개체 또는 자식 개체의 프라이빗 변수를 serialize하려면 심층 serialization을 사용해야 합니다.