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指出的相同