2014-06-27 164 views
0

我有以下類別:序列化問題

[Serializable] 
public class TradeBotSettings 
{ 
    public ExchangePlatform Exchange 
    { 
     get; 
     set; 
    } 

} 
[Serializable] 
    public enum ExchangePlatform 
    { 

     [XmlEnum("BTC_E")] 
     BTC_E, 
     [XmlEnum("BitStamp")] 
     BitStamp, 
     [XmlEnum("CampBX")] 
     CampBX, 
     [XmlEnum("Cryptsy")] 
     Cryptsy, 
     [XmlEnum("BTCChina")] 
     BTCChina, 
    } 

當我試圖序列給出錯誤

private void Button2_Click(object sender, EventArgs e) 
     { 
      TradeBotSettings tbSettings = new TradeBotSettings(); 
     tbSettings.Exchange = ExchangePlatform.BTC_E; 
     StreamWriter sw = new StreamWriter(@"D:\Temp\Trader\Trader\Trader\bin\x86\Debug\configs\bots.xml", false); 
     xmlSerializerTradebot = new XmlSerializer(tbSettings.GetType()); 
     xmlSerializerSettings.Serialize(sw, tbSettings); 
     sw.Close(); 
     } 

錯誤是:「System.InvalidOperationException」類型的未處理的異常出現在系統.Xml.dll

附加信息:生成XML文檔時發生錯誤。

這看起來像一個普通的錯誤任何人有一個關於這個

感謝線索事先

+1

是'xmlSerializerSettings.Serialize(sw,tbSettings);'一個錯字?那不會編譯。 –

+0

不明白對不起 –

回答

2

你不會呈現的編譯代碼,xmlSerializerSettings是未知的。這可能應該是「xmlSerializerTradebot.Serialize(...」,而不是,這工作正常。也許這是你的問題嗎?

順便說一句:你應該使用「使用」條款創建StreamWriter實例,以防止文件沒有立即關閉的情況下,序列化例外。你也不需要使用XMLEnum屬性,除非你想默認序列化行爲的枚舉更改...

BTW2:是的,我知道,這不是一個明確的我會如果我已經可以...... ;-)

+0

是的行是問題xmlSerializerTradebot相同的邁克指出ty –