常量上的NonSerialized属性

时间:2018-05-21 06:31:23

标签: c# .net serialization const

浏览.NET参考源以获取有关ClaimsIdentity类的一些详细信息,我注意到了这一点:

[NonSerialized]
const string PreFix = "System.Security.ClaimsIdentity.";
[NonSerialized]
const string ActorKey = PreFix + "actor"; 

NonSerializedAttribute上使用const可能是什么原因?

2 个答案:

答案 0 :(得分:0)

const值是可序列化的,除非它们附加了NonSerializedAttribute。编写该代码的人,决定他们不希望序列化这些值。

阅读MSDN docs on the SerializableAttribute,特别是:

  

将SerializableAttribute属性应用于某个类型时,默认情况下会对所有私有和公共字段进行序列化。您可以通过实现ISerializable接口来更精细地控制序列化,以覆盖序列化过程。

答案 1 :(得分:0)

Const适用于整个类,而不是与实例绑定。