2011-11-25 1 views
1

가능한 중복 : 나는 다음과 같은 XML을 역 직렬화하고
Deserializing XML, how do I access attributes?XML 디시리얼라이저는 속성을 선택하도록 어떻게 구성 될 수 있습니까?

: XMLSerializer를 사용하여 아래의 클래스 객체로

<root> 
    <foo> some content </foo> 
    <bar id="someId">someContent</bar> 
</root> 

.

[XmlRootAttribute("foobar")] 
public class foobar 
{ 

    [XmlElementAttribute("foo")] 
    public string foo { get; set; } 

    [XmlElementAttribute("bar")] 
    public string bar { get; set; }   

} 

그러나, 이것은 bar 태그 내에 someId을 선택하지 않습니다. 그것을 받기 위해서 나는 어떤 변화를해야합니까? 나는에 두 번째 속성을 변경, 위의 클래스에서

:

[XmlElementAttribute("bar")] 
public Bar bar { get; set; } 

그리고 새로운 클래스 정의 : 이것은 아직까지 집어

[XmlTypeAttribute] 
    public class Bar 
    { 
     [XmlAttribute("id")] 
     public string id { get; set; } 

     [XmlText] 
     public string Value { get; set; } 
    } 

나는이 시도 값은 아니지만 Id은 아닙니다.

+0

'bar'객체를 문자열이 아닌 다른 것으로 만들어야한다고 생각합니다. 왜냐하면 속성이 문자열에 적합하지 않기 때문입니다. – jv42

+0

("id")없이 XmlAttribute를 사용해 보셨습니까? – Steve

+1

같은 문제 : http://stackoverflow.com/questions/6003847/deserializing-xml-how-do-i-access-attributes – Steve

답변

1

해결해야 할 ("id")없이 XmlAttribute를 사용해보십시오.