C# XMLSerialize异常
我正在序列化一个类,出现以下异常: 必须在System.Configuration.SettingsPropertyCollection上实现默认访问器,因为它继承自ICollection 执行以下行时:C# XMLSerialize异常,c#,winforms,xml-serialization,C#,Winforms,Xml Serialization,我正在序列化一个类,出现以下异常: 必须在System.Configuration.SettingsPropertyCollection上实现默认访问器,因为它继承自ICollection 执行以下行时: XmlSerializer xs = new XmlSerializer(typeof(CustomConfiguration)); 有什么帮助吗 public class CustomConfiguration : ConfigurationObjectBase {
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派生的。我可以问一下您为什么要尝试序列化它吗?看起来有点奇怪。