2013-11-15 57 views
0

我創建了一個可序列化的對象,我想將它序列化爲XML,然後再反序列化。我想要的是將該對象的一個​​屬性保存爲XML屬性。這裏是我的意思是:如何將對象的屬性序列化爲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; } 
} 

我想的ProgramInfo保存到看起來像這樣的XML文件:

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

</ProgramInfo> 

通知版本屬性,並以XML及其相應的屬性。我已經有解析器將字符串「1.00.0000」轉換爲有效的版本對象,反之亦然,但我不知道如何將它用於此XML序列化場景。

+0

HTTP的可能重複:// stackoverflow.com/questions/11330643/serialize-property-as-xml-attribute-in-element – atomaras

回答

2

你需要的是字符串表示的屬性,被序列化:

[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

相關問題