3

次のようなフラグ列挙型を定義したい:

[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に指定したいと思います。EvenNumbersFour

ただし、 を使用してこのオブジェクトをシリアル化XmlSerializer.Serializeすると、XML はTwo、現在は同じ基になる値であるためと表示されます。

シリアライザーにこのプロパティを強制的にシリアライズさせるにはどうすればよいEvenNumbersですか?

4

1 に答える 1