代码之家  ›  专栏  ›  技术社区  ›  UserControl

常数的非序列化属性

  •  0
  • UserControl  · 技术社区  · 6 年前

    浏览.NET参考源以获取有关 ClaimsIdentity 我注意到:

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

    可能是什么原因 NonSerializedAttribute 在一个 const 是吗?

    2 回复  |  直到 6 年前
        1
  •  0
  •   jwdonahue    6 年前

    常量值是可序列化的,除非它们附加了非序列化属性。不管是谁写的代码,都决定不想序列化这些值。

    阅读 MSDN docs on the SerializableAttribute ,具体来说:

    对类型应用serializableattribute属性时,默认情况下会序列化所有私有字段和公共字段。通过实现ISerializable接口来重写序列化过程,可以更细粒度地控制序列化。

        2
  •  0
  •   Mahesh Malpani    6 年前

    const用于整个类,不与实例绑定。

    推荐文章