C# 具有属性的集合的Xml序列化

C# 具有属性的集合的Xml序列化,c#,xml,serialization,xml-serialization,C#,Xml,Serialization,Xml Serialization,我有一个简单的课程: public class MappingCollection<T> : List<T> { private int _declaredTotal = -1; public int DeclaredTotal { get { return _declaredTotal; } set { _declaredTotal = value; } } } 公共类映射集合:列表 { 私有整数_declaredTotal=-1; public in

我有一个简单的课程:

public class MappingCollection<T> : List<T>
{
    private int _declaredTotal = -1;
    public int DeclaredTotal { get { return _declaredTotal; } set { _declaredTotal = value; } }
}
公共类映射集合:列表
{
私有整数_declaredTotal=-1;
public int DeclaredTotal{get{return}DeclaredTotal;}set{u DeclaredTotal=value;}
}
我在另一个叫做“映射”的类中使用它。“映射”的实例被序列化为xml。映射的所有其他属性都被正确序列化(类、标量属性等)

当它序列化我创建的这个自定义列表时,列表元素被正确序列化,但是“DeclaredTotal”属性没有。实际上,它总是序列化为-1,如果删除默认值,它总是序列化为0

我没有得到任何运行时错误,所以我真的不知道问题在哪里


有人知道如何解决这种奇怪的行为吗?

如果找不到解决方案,您可以尝试使用不同的xml序列化程序,如或


由于XmlSerializer处理集合类型的特殊方式,看起来您必须将列表作为MappingCollection中的属性,而不是扩展列表。

在哪里设置DeclaredTotal?也许您可以使用automatic Property来测试它。对象具有我设置的正确值,无论是自动属性还是如上所示。仍然在调用Serialize时,“DeclaredTotal”属性不会被序列化。将属性[Serializable]放置在MappingCollections的顶部也不会这样做。类本身已被序列化。包含的元素(因为它是一个列表)也被序列化。只是整数属性没有。你能告诉我们你是如何序列化的吗?