次のようなフラグ列挙型を定義したい:
[Flags]
[Serializable]
public enum Numbers
{
[XmlEnum(Name = "One")]
One = 0x1,
[XmlEnum(Name = "Two")]
Two = 0x2,
[XmlEnum(Name = "Three")]
Three = 0x4,
[XmlEnum(Name = "OddNumbers")]
OddNumbers = One | Three,
[XmlEnum(Name = "EvenNumbers")]
EvenNumbers = Two,
[XmlEnum(Name = "AllNumbers")]
AllNumbers = One | Two | Three
}
プロパティを持つオブジェクトを作成し、Numbers
そのプロパティを に設定するとしますEvenNumbers
。現在は のみプロパティに含まれていますが、将来追加する場合はプロパティにも含まれるようTwo
に指定したいと思います。EvenNumbers
Four
ただし、 を使用してこのオブジェクトをシリアル化XmlSerializer.Serialize
すると、XML はTwo
、現在は同じ基になる値であるためと表示されます。
シリアライザーにこのプロパティを強制的にシリアライズさせるにはどうすればよいEvenNumbers
ですか?