NonSerialized атрибут на константу

Просматривая.NET справочный источник для некоторых деталей ClaimsIdentity класс я заметил это:

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

Что может быть возможной причиной для использования NonSerializedAttribute на const?

2 ответа

Const для всего класса и не связаны с экземпляром.

Значения const являются сериализуемыми, если к ним не присоединен атрибут NonSerializedAttribute. Кто бы ни написал этот код, он решил, что не хочет сериализовать эти значения.

Прочтите документы MSDN по атрибуту SerializableAttribute, а именно:

Когда вы применяете атрибут SerializableAttribute к типу, все закрытые и открытые поля сериализуются по умолчанию. Вы можете более детально управлять сериализацией, реализуя интерфейс ISerializable для переопределения процесса сериализации.

Другие вопросы по тегам