解决方案 »
- wcf超时,求高人解决
- 急 字符串倒序相加
- C#如何设置窗口的启动先后.
- 怎样实现点击一个button,然后在代理服务器地址栏中写入相关的代理地址?
- 2个线程的通讯问题 附上完整的代码,请大家帮忙,急!!~~
- datagridview问题
- 请问网页与windows程序的通信用那种方法实现比较好?
- 怎么根据一个矩形大小,自动计算字体大小?
- 需要一个从c# de windows 应用的 输入ip地址用的comboBox 的控件,谁写过!
- 请问如果要装 VS.net 的话,用 Windows2000 作平台好,还是用WINDOWS xp好??(有内容,多多提建议)
- bs架构中怎么做图?
- 窗体中 如何获得另个窗体控件里的内容?
程序里面可以弄成父-子类
序列化的时候还是用父类,然后自己转成子类吧
你说的父子类我也想过,但应该也是不行的。因为程序退出时都要序列化KeywordOptionsEx到文件,如果反序列化仍然为KeywordOptions,那么新定义的属性就无法获取。想改用XmlSerializer,最起码序列化文件是可编辑的,我大不了写一个升级组件,添加这引起新增加的属性成员(默认值)到文件,然后可以反序列化成功。
How do I deserialize old data for a type that has changed?
在新添加的属性里面加上[OptionalField(VersionAdded = 2)]这种属性标签,然后在[OnDeserialized()]标签的方法中,赋予默认值或者清除错误
关于OptionalFieds,参考MSDN版本容错序列化