C# 自定义类型的序列化问题
我有以下课程:C# 自定义类型的序列化问题,c#,serialization,xml-serialization,C#,Serialization,Xml Serialization,我有以下课程: [Serializable] public class TradeBotSettings { public ExchangePlatform Exchange { get; set; } } [Serializable] public enum ExchangePlatform { [XmlEnum("BTC_E")] BTC_E, [XmlEnum(
[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文档时出错
这看起来像是一个一般性错误。有人对此有线索吗
提前感谢您提供的代码无法编译,xmlSerializerSettings未知。这可能应该改为“xmlSerializerTradebot.Serialize(…”,这很好用。也许这就是你的问题 顺便说一句:在创建StreamWriter实例时,您应该使用“using”子句,以防止在出现序列化异常时文件不会立即关闭。您也不需要使用XMLEnum属性,除非您希望更改枚举的默认序列化行为
BTW2:是的,我知道,这不是一个明确的问题答案,我宁愿评论。如果我已经可以…;-)是行
xmlSerializerSettings.Serialize(sw,tbSettings)代码>输入错误?抱歉,这行是问题所在xmlSerializerTradebot与mike指出的相同