2013-05-07 88 views
2

我正在開發一個項目,我需要使用datacontract序列化序列化一系列枚舉。 預期的結果應該像下面控制集合序列化

<Filters> 
    <MemberType>1</MemberType> 
    <MemberType>2</MemberType> 
    <MemberType>3</MemberType> 
</Filters> 

下面是被序列化類:

[DataContract(Name = "Filters")] 
public class Filters 
{ 
    private ObservableCollection<Nullable<MemberTypeEnum>> m_enmMemberType; 
    [DataMember(IsRequired = false, Name = "MemberType", Order = 1, EmitDefaultValue = false)] 
    public ObservableCollection<Nullable<MemberTypeEnum>> MemberType 
    { 
     get 
     { 
      return m_enmMemberType; 
     } 
     set 
     { 
      if (m_enmMemberType != value) 
      { 
       m_enmMemberType = value; 
       NotifyPropertyChanged("MemberType"); 
      } 
     } 
    } 
} 

[DataContract(Name = "MemberTypeEnum")] 
public enum MemberTypeEnum 
{ 
    [EnumMember(Value="1")] 
    [XmlEnum(Name="1")] 
    T_1 = 1, 
    [EnumMember(Value="2")] 
    [XmlEnum(Name="2")] 
    T_2 = 2, 
    [EnumMember(Value="3")] 
    [XmlEnum(Name="3")] 
    T_3 = 3, 
} 

我的問題是,結果我得到的是稍有不同:

<Filters> 
    <MemberType> 
     <MemberTypeEnum>1</MemberTypeEnum> 
     <MemberTypeEnum>2</MemberTypeEnum> 
     <MemberTypeEnum>3</MemberTypeEnum> 
    </MemberType> 
</Filters> 

有沒有辦法修改序列化(或我做錯了什麼),以便我可以得到預期的結果?

回答