C# XMLSerialize异常

C# XMLSerialize异常,c#,winforms,xml-serialization,C#,Winforms,Xml Serialization,我正在序列化一个类,出现以下异常: 必须在System.Configuration.SettingsPropertyCollection上实现默认访问器,因为它继承自ICollection 执行以下行时: XmlSerializer xs = new XmlSerializer(typeof(CustomConfiguration)); 有什么帮助吗 public class CustomConfiguration : ConfigurationObjectBase {

我正在序列化一个类,出现以下异常:

必须在System.Configuration.SettingsPropertyCollection上实现默认访问器,因为它继承自ICollection

执行以下行时:

XmlSerializer xs = new XmlSerializer(typeof(CustomConfiguration));
有什么帮助吗

public class CustomConfiguration : ConfigurationObjectBase 
{ 

         public CustomConfiguration () { //DO NOTHING. } 

         [User] 
         public uint Version 
         { get { return ((uint)(this["Version"])); } 
           set { this["Version"] = value; } 
}

} 

ConfigurationObjectBase是从System.configuration.ApplicationSettingsBase派生的。

您必须有一个默认构造函数,即不接受任何参数的构造函数,如下所示

class foo
{
    public foo() {}
}
如果您尝试序列化的类没有,XMLSerializer将抛出该异常。如果试图序列化内置类,则必须派生自己的类或创建包装类。

“默认访问器”是基于 它的索引。例如:

[Serializable()]
public class IntList : ICollection {

    // Default Accessor Implementation
    public int this[int index] {
        get {

            return 0;
        }
        set { /* Do Nothing */ }
    }
}

因此无法在现有的第三方类中实现该功能。对应用程序设置使用xml序列化是一个非常糟糕的主意,可以使用Save()、Reload()和Reset()方法,或者使用您自己的非从ApplicationSettingsBase自定义配置类派生的方法。

注意类型是
System.Configuration.setingsPropertyCollection
。。。不容易编辑。能否显示
CustomConfiguration
类的任何版本(特别是继承等)?公共类CustomConfiguration:ConfigurationObjectBase{public CustomConfiguration(){///什么都不做。}/////版本///[用户]公共uint版本{get{return((uint)(this[“Version”]);}set{this[“Version”]=value;}}ConfigurationObjectBase是从System.configuration.ApplicationSettingsBase派生的。我可以问一下您为什么要尝试序列化它吗?看起来有点奇怪。