2012-02-08 81 views
30

我有一個類,一個屬性是枚舉。事情是這樣的:我們是否需要枚舉的可序列化屬性

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

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

當我序列PersonBinaryFormatter,我是否需要[Serializable]在枚舉decleration? 沒有它,但它爲什麼允許[Serializable]屬性枚舉decleration它工作正常嗎?

+0

是否要序列化值?它只是一個整數... – 2012-02-08 17:13:47

+1

我想序列化的值,它是序列化,無論我有[Serializable]屬性或不。問題是爲什麼.NET允許serializable屬性用於枚舉 – cellik 2012-02-08 20:08:51

回答

23

.NET知道如何自動序列化所有簡單的內置類型,這就是爲什麼你不需要指定它。

我想如果.NET拒絕可序列化的項目的序列化屬性,它會更混亂。你可以決定添加它還是放棄它的事實是一個品味問題。

+0

那麼這是否意味着該類不是(簡單)類型,但枚舉是? :P這也是一個非常好的回答這個問題:http://stackoverflow.com/a/2595199/945456 – 2013-02-21 17:35:34