我编写了我的类型派生自list.split('|')
标记了所有属性ConfigurationSection
和类DataMember
,但程序崩溃说明我无法从未标记为{的类型继承我的类型{1}}。
那么如何将此序列化程序与DataContract
一起使用?
DataContract
答案 0 :(得分:2)
我想如果你不能将序列化程序与非数据契约类一起使用,那么你应该将数据成员属性分成另一个将在ConfigurationSection中聚合的类:
[DataContract]
public sealed class CustomConfig
{
[DataMember]
public int ConnectionTimeout {get;set;}
}
public sealed class MyConfig : ConfigurationSection
{
private CustomConfig _customCfg = new CustomConfig(){ConnectionTimeout = this.ConnectionTimeout};
[ConfigurationProperty("ConnectionTimeout", DefaultValue = 1000)]
public int ConnectionTimeout
{
get { return (int)this["ConnectionTimeout"]; }
set { _customCfg.ConnectionTimeout = value;this["ConnectionTimeout"] = value; }
}
... // other values
}
您可以使用序列化程序序列化CustomConfig实例
答案 1 :(得分:0)
还有另一种方法 - 不依赖于自动序列化,而是手动编写自定义序列化。由于.htaccess
支持它,因此最终只能使用单个类型和另外两种方法(更确切地说:序列化的额外方法和反序列化的构造函数)。