c# – 对实例的序列化和反序列化做出反应

c# – 对实例的序列化和反序列化做出反应,第1张

概述我有一个我正在序列化的课程.我用[Serializable]注释它,我正在使用二进制序列化器.一切正常. 但后来我引入了新属性,这些属性无法序列化(假设它们包含很多关于GUI的混乱,不需要记录).我可以根据类的其他属性计算这些属性. 当我序列化时,我需要做两次 – 清理混乱并进入准备序列化的稳定状态.反序列化 – 再次计算所有需要的属性. 我需要对“事件”做出反应,实例正在被序列化/反序列化. 但 我有一个我正在序列化的课程.我用[Serializable]注释它,我正在使用二进制序列化器.一切正常.

但后来我引入了新属性,这些属性无法序列化(假设它们包含很多关于GUI的混乱,不需要记录).我可以根据类的其他属性计算这些属性.

当我序列化时,我需要做两次 – 清理混乱并进入准备序列化的稳定状态.反序列化 – 再次计算所有需要的属性.

我需要对“事件”做出反应,实例正在被序列化/反序列化.

但是我找不到这些事件,因为我没有实现接口ISerializable或抽象类Aserializable,只有类属性[Serializable].

我不知道什么时候被序列化,因为它不是这个类的关注点;它被序列化为另一个类的字段.

有没有办法可以对这些事件做出反应?

解决方法 您可以使用 OnDeserializedAttribute及其相关属性(OnSerializing,OnSerialized,OnDeserializing)来创建在序列化/反序列化过程中调用的特殊方法. 总结

以上是内存溢出为你收集整理的c# – 对实例的序列化和反序列化做出反应全部内容,希望文章能够帮你解决c# – 对实例的序列化和反序列化做出反应所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1234300.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存