2013-05-07 87 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> 

有没有办法修改序列化(或我做错了什么),以便我可以得到预期的结果?

回答