繁体   English   中英

C#中的自定义序列化程序和继承

[英]Custom serializer and inheritence in C#

我正在学习有关C#的序列化的知识,但我掌握了一些基础知识,但是现在我正在尝试一些更复杂的事情,并且正在寻找最佳实践的指导(我可以实现我想要的,我只是想知道“正确” /最简单/最少代码/最可靠的方法)。

我有一条由路段组成的赛道。 每个节类型都继承自一个常见的TrackSection类。 TrackSection类保存了大量关于几何图形和其他我不想保存的数据,并且在调用构造函数时需要一些上下文信息,因此我实现了ISerializable接口并提供了自己的方法来处理(de )序列化。 从TrackSection继承的类要简单得多,我很乐意将其所有字段自动序列化,但是我假设由于基类是ISerializable,所以它们可能也需要手动进行(我添加了反序列化构造函数,并在每个实例中调用基类的反序列化构造函数)。 关于序列化,尽管我不确定该怎么做,我希望ISerializable的GetObjectData()方法是虚拟的,因此可以在子类中扩展序列化。 我是否只需要实现从基类的GetObjectData()调用的我自己的虚拟方法,还是我将这一切搞错了?

就像我说的那样,我可以使用它,但是任何更好的解决方案或关于我正在做的事情的任何一般性提示都将不胜感激,因为我不禁感到自己的解决方案比需要的复杂。 谢谢。

除非您在需要实现ISerializable的事情上做某件事,否则,您可以改为使用Serializable属性标记该类,并将不需要序列化的字段标记为NonSerialized

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM