NonSerialized атрибут на константу
Просматривая.NET справочный источник для некоторых деталей ClaimsIdentity
класс я заметил это:
[NonSerialized]
const string PreFix = "System.Security.ClaimsIdentity.";
[NonSerialized]
const string ActorKey = PreFix + "actor";
Что может быть возможной причиной для использования NonSerializedAttribute
на const
?
2 ответа
Значения const являются сериализуемыми, если к ним не присоединен атрибут NonSerializedAttribute. Кто бы ни написал этот код, он решил, что не хочет сериализовать эти значения.
Прочтите документы MSDN по атрибуту SerializableAttribute, а именно:
Когда вы применяете атрибут SerializableAttribute к типу, все закрытые и открытые поля сериализуются по умолчанию. Вы можете более детально управлять сериализацией, реализуя интерфейс ISerializable для переопределения процесса сериализации.