2013-11-15 2 views
0

직렬화 가능한 객체를 만들었으므로 XML로 직렬화 한 다음 나중에 역 직렬화하려고합니다. 내가 원하는 것은이 객체의 한 속성을 XML 속성으로 저장하는 것입니다.XML 요소의 속성에 객체의 속성을 직렬화하는 방법은 무엇입니까?

<?xml version="1.0" encoding="utf-8" ?> 
<ProgramInfo Name="MyApp" Version="1.00.0000"> 

</ProgramInfo> 

공지 사항 버전 ​​속성과 XML의 해당 속성 :

[Serializable] 
public class ProgramInfo 
{ 
    public string Name { get; set; } 
    public Version Version { get; set; } 
} 

public class Version 
{ 
    public int Major { get; set; } 
    public int Minor { get; set; } 
    public int Build { get; set; } 
} 

내가 XML의 다음과 같습니다 파일에 같이, ProgramInfo을 저장할 : 여기가 무슨 뜻인지입니다. 유효한 버전 객체에 문자열 "1.00.0000"을 반환하는 파서가 이미 있는데이 XML 직렬화 시나리오에서 사용하는 방법을 모르겠습니다. 당신이 무엇을 할 수 있는지

+0

가능한 중복 : // stackoverflow.com/questions/11330643/serialize-property-as-xml-attribute-in-element – atomaras

답변

2

당신이 필요로하는 직렬화됩니다 문자열 표현에 대한 속성입니다 : HTTP의

[Serializable] 
public class ProgramInfo 
{ 
    [XmlAttribute] 
    public string Name { get; set; } 

    [XmlIgnore] 
    public Version Version { get; set; } 

    [XmlAttribute("Version") 
    public string VersionString 
    { 
     get { return this.Version.ToString(); } 
     set{ this.Version = Parse(value);} 
    } 
} 
1

은 VersionValue과 VersionType 속성을 가지고있다

[Serializable] 
public class ProgramInfo 
{ 
    private string _versionValue; 
    public string Name { get; set; } 
    public string VersionValue 
    { 
    get 
    { 
     return _versionValue; 
    } 
    set{ 
     _versionValue = value; 
     //Private method to parse 
     VersonType = parseAndReturnVersionType(value); 

     } 
    } 
    public Version VersionType { get; set; } 
} 
+0

으악, 맞습니다. – Bearcat9425

관련 문제