我正在查看我正在处理的项目中的一些现有代码,我发现了一个实现为的类:
public class ThingOne
{
private int A;
private int B;
[NonSerialized]
private System.Timers.Timer timer1;
}
它不应该看起来更像这样吗?
[Serializable]
public class ThingOne
{
private int A;
private int B;
[NonSerialized]
private System.Timers.Timer timer1;
}
或者即使类本身不是可序列化的,添加 [NonSerialized] 是否还有其他好处?
最佳答案
当不使用 Serializable 时,NonSerialized 将不起作用。默认情况下,类及其成员是不可序列化的。
当类没有被序列化时,声明一些 NonSerialized 的唯一好处是在类被一个 Serialized 对象继承的情况下,然后被继承的成员将是不可序列化的。
从 MSDN :
关于c# - 不使用 [Serializable] 时 [NonSerialized] 的好处,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3735926/