2014-10-02 72 views
0

我正在嘗試在XML文件中編寫我的類。這裏是我的類:在XML文件中寫入時名稱字符錯誤無效

class Version 
    { 
     string _version; 
     bool _showNextTime; 
     public Version(string version, bool showNextTime) 
     { 
      this._version = version; 
      this._showNextTime = showNextTime; 
     } 

     public string LastVersion { get { return _version; } } 
     public bool ShowNextTime { get { return _showNextTime; } } 
    } 

這是我的代碼在XML寫:

 Version newVersion = new Version("3.0.1", false); 
     using (XmlWriter writer = XmlWriter.Create("Versions.xml")) 
     { 
      writer.WriteStartDocument(); 
      writer.WriteStartElement("Version"); 
      writer.WriteElementString(newVersion.LastVersion, newVersion.ShowNextTime.ToString()); 
      writer.WriteEndElement(); 
      writer.WriteEndDocument(); 
     } 

但它拋出這個錯誤:

Invalid name character in '3.0.1'. The '3' character, hexadecimal value 0x33, cannot be included in a name. 

試圖運行這一行:

writer.WriteElementString(newVersion.LastVersion, newVersion.ShowNextTime.ToString()); 

誰能告訴我如何 修理它?謝謝

+0

將元素名稱設置爲版本號。 – Reniuz 2014-10-02 08:32:42

回答

1

您正試圖編寫具有在屬性值中定義的名稱的元素。 WriteElementString採用元素名稱,後跟值。

取而代之的是:

writer.WriteElementString(
    newVersion.LastVersion, 
    newVersion.ShowNextTime.ToString()); 

這樣做:

writer.WriteElementString("LatestVersion", newVersion.LastVersion); 
writer.WriteElementString("ShowNextTime", newVersion.ShowNextTime.ToString()); 

的另一種方法是使用框架會自動創建類的XML表示。在StackOverflow上有很多可用的例子。例如Serialize an object to XML

相關問題