2010-07-22 3 views
1

아래의 클래스에 대한.NET Xml 직렬화 : 정수가있는 정수 요소?

...는 C#에서 다음을 달성 할 수 있는가

나는 다음과 같은 XML 달성하고자하는
public class Foo{ 
public int BarId{get;set;} 
public string BarString{get;set;} 
} 

:

<Foo> 
    <BarId BarString="something">123</BarId> 
</Foo> 

답변

4

ArsenMkrt 같은 톰 직렬화 메커니즘이 올바른 궤도에 있지만 요소의 내용 누락, 나는 수정 된 버전을 제안 :

class BarId 
{ 
    [XmlText()] 
    public int Content {get; set;} 

    [XmlAttribute()] 
    public string BarString {get; set;} 
} 

public class Foo{ 
    public BarId BarId {get; set;} 
} 

당신이 정수로 콘텐츠를 이런 식으로.

0

당신은 만들어야을 BarString 클래스에 BarString 클래스가 있습니다.

class BarId 
{ 
    [XmlAttribute] 
    public string BarString{get;set;} 
} 

public class Foo{ 
public BarId BarId{get;set;} 
} 

또는 Cus here

+0

어떻게 BarID가 int로 동작할까요? –

+0

그렇지 않습니다. 속성 기반이 아닌 프로그래밍 방식의 직렬화가 필요합니다. –

+0

가능한 경우 기본 제공 클래스를 사용하고 싶습니다. 그러나 사용자 지정 serializer 재정의는 처음 나타나는 것처럼 거의 위협적이지 않습니다. 프로덕션 코드에서 사용하는 곳이 많이 있습니다. 그들은 특히 외부 또는 레거시 XML과 일치 할 때 많은 유연성을 허용합니다. XmlSerializer에 99 % 만족하더라도 여전히 체크 아웃 할 가치가 있습니다. – TechNeilogy