2014-12-26 2 views
2

C# xml serialization의 XmlElement와 XmlElementAttribute의 차이점은 무엇입니까? 개체의 xml serialization 동안 문제가 발생했습니다.C# xml serialization의 XmlElement와 XmlElementAttribute의 차이점

사실, 같은 이름의 필드가 2 개 있습니다. 1 Base 클래스 및 기타 자식 클래스 및 xml 문서에 표시 할 다른 요소 이름을 설정해야합니다.

+1

특정 문제를 설명하십시오, 그렇지 않으면 문제를 해결하는 데 도움이되는 답을 제공하는 것이 거의 불가능합니다. – dasblinkenlight

+0

무슨 문제입니까? – Sybren

답변

2

음, XML 파일 구조에 따라 다릅니다. 자식 요소가 xml 태그 인 경우 XmlElement 데이터 주석을 추가해야합니다. 클래스의 속성이 현재 노드와 관련된 속성에 바인딩 된 경우 속성 데이터 주석을 추가합니다.

[Serializable()] 
public class Person 
{ 
    [System.Xml.Serialization.XmlElement("Name")] 
    public string Name{ get; set; } 

    [System.Xml.Serialization.XmlElement("Phone")] 
    public int Phone { get; set; } 

    [System.Xml.Serialization.XmlElement("Address ")] 
    public string Address { get; set; } 
} 

이 경우 귀하의 XML 구조는이를 좋아한다 : 속성이 아이가 속성을 나타내는 경우
<person> 
     <name>...</name> 
     <phone>...</phone> 
     <address>...</address> 
    </person> 

지금, 그것은 다음과 같이 될 것입니다 :

<person name='...' phone='...' address='...'></person> 
+0

이미 시도했지만 작동하지 않았습니다. 예외 : 형식을 반영하는 오류가 발생했습니다 : XmlElementAttribute 또는 XmlAttributeAttribute를 사용하여 새 이름을 지정하십시오. –