我有以下课程:
[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.Xml.dll中出现未处理的“System.InvalidOperationException”类型异常
其他信息:生成XML文档时出错。
这看起来像是一个通用错误,任何人都有关于此
的线索提前致谢
答案 0 :(得分:2)
您提交的代码不会编译,xmlSerializerSettings未知。这应该是“xmlSerializerTradebot.Serialize(...”而不是,这很好。也许这是你的问题?
顺便说一句:您应该在创建StreamWriter实例时使用“using”子句,以防止在序列化异常的情况下不立即关闭文件。您也不需要使用XMLEnum属性,除非您想要更改枚举的默认序列化行为...
BTW2:是的,我知道,这不是问题的明确答案,我应该评论。我愿意,如果我已经......; - )