2012-02-08 13 views
30

私はクラスを持っていて、1つのプロパティはenumです。このような何か:enumのSerializable属性が必要ですか

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

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

私はBinaryFormatterPersonをシリアル化するとき、私は列挙型declerationで[Serializable]が必要なのでしょうか? それは問題なく動作しますが、なぜそれが列挙型解読の[Serializable]属性を許可しますか?

+0

値をシリアル化しますか?そのちょうど整数です... –

+1

私は値をシリアル化したいですし、私は[Serializable]属性を持っているかどうかにかかわらずシリアル化されています。問題は.NETが列挙型のserializableattributeを許可するのはなぜですか – cellik

答えて

23

.NETは、シンプルな組み込み型を自動的にシリアライズする方法を知っているので、指定する必要はありません。

.NETがシリアライズ可能な項目のシリアライズ可能な属性を拒否したとすれば、それはもっと混乱すると思います。あなたがそれを追加したり離したりすることを決めることができるという事実は、味の問題です。

+0

これは、クラスが(単純な)型ではないが列挙型であることを意味しますか? :Pこれはまた質問に対する本当に良い答えです:http://stackoverflow.com/a/2595199/945456 –

関連する問題