代码之家  ›  专栏  ›  技术社区  ›  Steven Evers

如果我在子类中实现ISerializable,那么父类也必须实现吗?

  •  8
  • Steven Evers  · 技术社区  · 15 年前

    我必须在派生类中实现ISerializable(要进行一些自定义序列化/反序列化),但父类标记为[可序列化]。序列化“有效”(我可以在没有运行时错误的情况下进行序列化和反序列化),但看起来没有保留基类数据。

    我在派生类中实现GetObjectData是否否定了基类的序列化?如果是这样,我是否必须在基类中实现ISerializable,然后在派生类中调用base.getObjectData(…)来保留数据,或者是否有比100次写入info.addValue(…)更好的方法?

    编辑>谢谢Tim。你证实了我的怀疑。问题本身更进一步。在我的例子中,基类实现了iteself不实现ISerializable的bindingList(t)。

    在此期间,对于每一处房产,我将尝试: 在ISerializable构造函数中 base.property=info.getValue(…);

    在getObjectDate中 info.addvalue(“名称”,base.property);

    除非奇妙的社会提出更好的解决方案。

    1 回复  |  直到 15 年前
        1
  •  6
  •   Tim Robinson    15 年前

    是否必须在基类中实现ISerializable,然后在派生类中调用Base.GetObjectData(…)

    对。一旦实施 ISerializable ,任何自动序列化都将关闭。

    同样,您需要在基类和派生类中实现受保护的序列化构造函数。