Подтвердить что ты не робот

Нам нужен атрибут Serializable для перечислений

У меня есть класс, а одно свойство - это перечисление. Что-то вроде этого:

    //Do i need [Serializable]    
    public enum SexEnum
    {
         Male,
         Female
    }

    [Serializable]
    public class Person
    {
         string Name {get;set;}
         SexEnum Sex {get;set;} 
    }

Когда я сериализую Person с BinaryFormatter, мне нужно [Serializable] при объявлении перечисления? Он отлично работает без него, но тогда почему он разрешает атрибут [Serializable] в объявлении перечисления?

4b9b3361

Ответ 1

.NET знает, как автоматически сериализовать все простые встроенные типы, поэтому вам не нужно указывать его.

Я думаю, что если .NET отклонит сериализуемый атрибут для объектов, которые сериализуемы, это будет более запутанным. Тот факт, что вы можете решить добавить его или оставить его, - это вопрос вкуса.