DataContractSerializer没有序列化一个属性

时间:2012-01-12 16:45:35

标签: c# xml xml-serialization datacontractserializer

当我序列化以下类时,生成的XML文件中缺少ContentPageId XML元素。

[CollectionDataContract(ItemName = "Widget")]
public sealed class StructurePage : List<Widget>, IEquatable<StructurePage>
{
    [DataMember]
    public int ContentPageId
    {
        get;
        set;
    }

    public StructurePage(){}

    public StructurePage(int pageId)
    {
        this.ContentPageId = pageId;
    }

    public bool Equals(StructurePage other)
    {
        return this.ContentPageId.Equals(other.ContentPageId);
    }
}
  1. 为什么序列化时会跳过该属性以及如何将其作为XML元素包含?
  2. 是否可以将它作为XML属性包含在序列化中,以用于StructurePage元素?正在网上寻找这个,但可以找到它的任何信息,显然XmlSerializer有XmlAttributeAttribute属性,但DataContractSerializer没有这样的东西。

1 个答案:

答案 0 :(得分:1)

浏览此帖http://social.msdn.microsoft.com/Forums/eu/wcf/thread/57eb195a-43a9-47fe-8b1a-a9d23feb2df2

根据这个

  

收集数据合约类不能包含额外的数据成员。

希望这有帮助。