我需要在派生类中实现ISerializable(以执行一些自定义的序列化/反序列化),但父类被标记为[Serializable]。 序列化“有效”(我可以序列化和反序列化而不会出现运行时错误),但似乎基类数据没有被保留。
如果我在派生类中实现GetObjectData是否会否定基类的序列化?如果是这样,我是否必须在基类中实现ISerializable,然后在派生类中调用base.GetObjectData(...)以保存数据,还是有比写100次info.AddValue(...)更好的方法?
编辑>谢谢Tim。 您确认了我怀疑的事情。 问题本身又进了一步。 在我的情况下,基类实现了BindingList(T),它本身没有实现ISerializable。
在临时期间,对于每个属性,我将尝试: 在ISerializable构造函数中 base.Property = info.GetValue(...);
并在GetObjectDate中 info.AddValue("name", base.Property);
除非SO社区提出更好的解决方案。
如果我在派生类中实现GetObjectData是否会否定基类的序列化?如果是这样,我是否必须在基类中实现ISerializable,然后在派生类中调用base.GetObjectData(...)以保存数据,还是有比写100次info.AddValue(...)更好的方法?
编辑>谢谢Tim。 您确认了我怀疑的事情。 问题本身又进了一步。 在我的情况下,基类实现了BindingList(T),它本身没有实现ISerializable。
在临时期间,对于每个属性,我将尝试: 在ISerializable构造函数中 base.Property = info.GetValue(...);
并在GetObjectDate中 info.AddValue("name", base.Property);
除非SO社区提出更好的解决方案。