当前位置:  开发笔记 > 编程语言 > 正文

C#中的设计时序列化

如何解决《C#中的设计时序列化》经验,为你挑选了0个好方法。

我在C#中创建了一个非可视组件,它被设计为表单上元数据的占位符.
该组件具有一个属性,该属性是自定义对象的集合,该对象标记为Serializable,并实现用于s​​erilizing的GetObjectData和用于deserilizing的公共构造器.

在表单的resx文件中,它将生成用于存储集合的二进制数据,但是每当我对序列化类进行更改时,我都会遇到设计器错误,需要从resx文件中手动删除数据,然后重新创建此数据.

我试过更改构造器,在类中的每个属性周围都有一个try/catch块

try
{
  _Name = info.GetString("Name");
}
catch (SerializationException)
{
  this._Name = string.Empty;
}

但它仍然崩溃.我得到的最后一个错误是我必须实现IConvertible.

我更喜欢使用xml序列化,因为我至少可以看到它,设计师可以使用吗?

有没有办法使序列化更稳定,更不耐受变化?

编辑:
更多信息...更好的描述也许
我有一个继承自Component的类,它有一个属性是规则的集合.RulesCollection似乎必须标记为Serializable,否则它不会保留其成员.

Rules类也是一个具有属性DesignTimeVisible(false)的Component,用于阻止它在组件托盘中显示,此clas未标记为Serializable.

将标记为Serializable的集合生成resx文件中的二进制数据(不理想),IDE报告Rules类不可序列化.

我认为这个问题超越了一个简单的问题.所以我很快就会关闭它.
如果有人有类似的东西的任何链接,将有很多帮助.

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有