다른 사용자 정의 클래스를 포함하는 XML로 객체를 직렬화하려고합니다. 내가 이해하는 (나는 MSDN을 읽고 대부분)이므로, XmlSerializer
은 이것을 고려하지 않습니다.사용자 정의 클래스를 포함하는 클래스를 직렬화
, hereXML 직렬화는 XML 스트림으로 만 대중 필드와 객체의 속성 값을 직렬화 :
이
나를 혼란 라인입니다. XML 직렬화는 형식 정보를 포함하지 않습니다. 예를 들어 Library 네임 스페이스에 Book 개체가있는 경우이 개체를 같은 유형의 개체로 deserialize 할 수는 없습니다. MSDN에서 촬영
예를 들어, I 형 Order
의 객체를 직렬화하기를 원하지만 그것은 Products
의 목록을 포함하고, 각각의 유형 Category
의 객체가 포함
class Order
{
List<Product> products;
}
class Product
{
Category type;
}
class Category
{
string name;
string description;
}
을
<Order>
<Product>
<Category Name="">
<Description></Description>
</Category>
</Product>
<Product>
<Category Name="">
<Description></Description>
</Category>
</Product>
<Order>
012 :
는 그리고 내 Order
오브젝트과 같이 직렬화 할
XmlSerializer
이 이미이 작업을 수행합니까? 그렇지 않다면 직렬화 프로세스를 스스로 정의해야하는 또 다른 클래스가 있습니까?
괜찮을 것입니다. public getters/setter를 사용하여 private 필드를 public 속성으로 다시 선언하십시오. 'XmlAttribute' 속성 (그리고 다른 것들)을 사용하여 속성이 원하는 스타일로 직렬화되도록 할 수 있습니다. 편집 : 당신은 또한'공개'클래스를 만들어야 할 수도 있습니다; '내부'가 작동하는지 여부는 확실하지 않습니다. –