2009-09-08 3 views
3

XML 직렬화에서 생성 된 XML 요소를 객체 클래스에 정의 된 것과 같은 방식으로 정렬하도록 강제 할 수 있습니까?직렬화시 XML 요소를 클래스 순서와 일치하도록 지정

class SerializableClass 
{ 
    [XmlElement("Element.1")] 
    public List<string> Element1 
    { 
     get { return _Element1; } 
     set { _Element1 = value; } 
    } 
    private List<string> _Element1; 
    [XmlElement("Element.2")] 
    public int Element2; 
    [XmlElement("Element.3")] 
    public List<string> Element3 
    { 
     get { return _Element3; } 
     set { _Element3= value; } 
    } 
    private List<string> _Element3; 
    [XmlElement("Element.4")] 
    public string Element4; 
    [XmlElement("Element.5")] 
    public bool Element5; 
} 

<Element.1>SomeValue 1</Element.1> 
<Element.1>SomeValue 2</Element.1> 
<Element.2>12</Element.2> 
<Element.3>SomeValue 1</Element.3> 
<Element.3>SomeValue 2</Element.3> 
<Element.4>SomeString</Element.4> 
<Element.5>true</Element.5> 

에 나는 순서 때문에 외부 검증의 정확한해야합니다.

답변

4

당신은 직렬화 속성에 Order을 설정 할 수 있어야한다 :

public class SerializableClass 
{ 
    [XmlElement("Element.1", Order = 1)] 
    public List<string> Element1 
    { 
     get { return _Element1; } 
     set { _Element1 = value; } 
    } 
    private List<string> _Element1; 
    [XmlElement("Element.2", Order = 2)] 
    public int Element2; 
    [XmlElement("Element.3", Order = 3)] 
    public List<string> Element3 
    { 
     get { return _Element3; } 
     set { _Element3 = value; } 
    } 
    private List<string> _Element3; 
    [XmlElement("Element.4", Order = 4)] 
    public string Element4; 
    [XmlElement("Element.5", Order = 5)] 
    public bool Element5; 
} 
+0

덕분 마크, 많은 감사. 나는 또한 그것들을 섞기보다는 모든 멤버 속성을 만들면 원하는 효과를 얻는 것 같았다. – Ryall

관련 문제