2011-05-02 3 views
-1

xml 데이터가 문자열 변수에 저장되어 있다고 가정합니다. 그래서 내가 내 클래스에 XML을 de serialize하려고하면 속성 이름에 대한 오류가 발생합니다.xml 비 직렬화 관련 문제가 발생합니다

[XmlAttribute("Name")] 
    public string CompanyName 
    { 
    get 
    { 
     return __CompanyName; 
    } 
    set 
    { 
     if (value != null) 
     __CompanyName = value; 
     else 
     __CompanyName = ""; 
    } 
    } 

실제로 내 XML에는 이름 태그가 있지만 내 코드에는 속성 이름이 CompanyName이므로 오류가 발생합니다. 그래서 나는 오류가 발생합니다. 결과적으로 이름이 CompanyName으로 매핑되고 deserialization 중에 문제가 발생하지 않으므로 내 속성의 속성을 매핑 할 수있는 방법이 있습니까? 도와주세요. [XmlAttribute ("Name")] ... XmlAttribute 대신 xmlelement 여야합니다. 도움이 필요하다.

답변

4

이름을 바꾸어도 문제가 없습니다. 당신은 딱 맞는 속성이 필요합니다. 당신은 XML을 표시하지 않습니다,하지만 종류가 당신의 통제를 벗어나면 당신은 당신이 XmlSerializer을 다시 교육하는 XmlAttributeOverrides를 사용할 수

[XmlElement("Name")] 
public string CompanyName {...etc...} 

필요 보이는 -하지만 당신이 할 경우 당신 해야 캐시를 열고 serializer 인스턴스를 다시 사용하십시오. 그렇지 않으면 메모리가 누출됩니다.

+0

xml 데이터의 이름이 회사 이름에 자동 저장되는 방식을 알려주십시오. 내가 그것을 역 직렬화 할 때 매핑을 위해해야 ​​할 일. – Mou

+0

@ user728750'[XmlElement ("Name")]'는'CompanyName' 속성을 ' blah'요소에 매핑하도록 알려줍니다. 그 밖의 것은 필요하지 않습니다. 그 일을하지 않으면 example xml을 보여주세요. –