我有一个实现ISerializable接口的类用于自定义序列化。这适用于此类中的属性,但该类是派生类。我遇到的问题是基类属性没有为我序列化。基类具有可序列化的属性但不实现ISerializable。有没有办法序列化基类属性,而不必在派生类的ISerializable .GetObjectData方法中手动添加所有这些属性?
答案 0 :(得分:4)
来自MSDN
正如我所提到的,ISerializable接口非常强大,因为它允许类型完全控制类型的实例如何被序列化和反序列化。 这种力量需要付出代价;该类型现在负责序列化其所有基类型的字段。如果基类型也实现了ISerializable接口,则序列化基类型的字段很简单 - 您只需调用基类型的GetObjectData方法。有一天,您可能会发现自己定义了一个需要控制其序列化的类型,但其基类型没有实现ISerializable接口。在这种情况下,您的类必须手动序列化基类型的字段。