Delphi组件序列化

Delphi组件序列化

Delphi Component Serialization

任何人都遇到将组件序列化为文件并读回它们的问题,特别是在组件供应商升级VCL组件的区域。例如,使用DelphiX序列化的文件,然后在几年后使用delphiY读回。序列化格式是否发生更改?如果更改,可以做些什么以防止在升级时读取组件中的错误。


用于序列化已发布属性的基于RTTI的内置系统很容易受到组件更改的影响。只要将旧属性保留在新对象中,前进就可以管理。 IE。您可以按原样保留属性界面,但可以根据需要扔掉内容。向后退的情况更糟-因为在较旧版本的加载中无法打开较新版本的保存属性,这将是一个问题。

有组件/库(http://www.torry.net/quicksearchd.php?String=RTTI


感谢您的回复。我试图避免自定义序列化并利用每个组件的序列化技术,但是由于缺少opf来"修补"升级到新组件格式的任何方法,我猜想自定义序列化是唯一的方法。


格式将最终改变,因为供应商将在其组件中添加功能。序列化只是循环所有已发布的属性,并将它们保存到流中。读回它们时,将从流中读取的每个属性都重新设置为组件。如果该属性不再存在,则您有问题。我认为除了一些基本的异常处理之外,您不能对此做任何事情。

保证兼容性的最佳方法是进行自己的序列化。


推荐阅读