【发布时间】:2021-05-07 02:34:55
【问题描述】:
我知道[Serializable] 将类型标记为可序列化,ISerializable 使您可以通过实现GetObjectData 进行自定义序列化/反序列化,因此您可以看到如下代码:
[Serializable]
public class MyType : ISerializable {
...
void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { ... }
}
我的问题是,当一个类型实现 ISerializable 时,它隐含地表明这个类型是“可序列化的”,因为逻辑是,如果你可以控制做你想做的事情,那么你是“有能力”的做这件事,所以我认为当一个类型实现ISerializable 时省略[Serializable]不是更好吗?
【问题讨论】: