2012-02-08 9 views
30

Tengo una clase y una propiedad es enum. Algo como esto:Necesitamos el atributo Serializable para enumeraciones

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

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

Cuando serializar Person con BinaryFormatter, qué necesito [Serializable] en el decleration enumeración? Funciona bien sin él, pero ¿por qué permite el atributo [Serializable] en la declinación de enumeración?

+0

¿Desea serializar el valor? Es solo un número entero ... –

+1

Quiero serializar el valor y se serializa si tengo el atributo [Serializable] o no. La pregunta es por qué .NET permite serializableattribute para enumeraciones – cellik

Respuesta

23

.NET sabe cómo serializar automáticamente todos los tipos simples incorporados, por eso no es necesario que lo especifique.

Creo que si .NET desaprovechara el atributo serializable para los elementos que son serializables, sería más confuso. El hecho de que pueda decidir agregarlo o dejarlo fuera es una cuestión de gusto.

+0

Entonces, ¿eso significa que la clase no es un tipo (simple), pero enum es? : P Esta es también una muy buena respuesta a la pregunta: http://stackoverflow.com/a/2595199/945456 –

Cuestiones relacionadas