【发布时间】:2011-07-16 10:55:07
【问题描述】:
我有这个简单的课程:
public class MappingCollection<T> : List<T>
{
private int _declaredTotal = -1;
public int DeclaredTotal { get { return _declaredTotal; } set { _declaredTotal = value; } }
}
我在另一个名为“映射”的类中使用它。 “映射”的实例被序列化为 xml。 Mapping 的所有其他属性都被正确序列化(类、标量属性等)。
当它序列化我创建的这个自定义列表时,列表元素会正确序列化,但“DeclaredTotal”属性没有。事实上,它总是序列化为 -1,如果我删除默认值,它总是序列化为 0。
我没有收到任何运行时错误,所以我真的不知道问题出在哪里。
有人知道如何解决这种奇怪的行为吗?
【问题讨论】:
-
DeclaredTotal 在哪里设置?也许您可以使用自动属性对其进行测试
-
已经做到了。该对象具有我设置的正确值,无论是使用自动属性还是如上所示。仍然在调用 Serialize 时,“DeclaredTotal”属性不会被序列化。
-
如何将属性 [Serializable] 放在 MappingCollection
之上 -
那也不行。类本身已经被序列化了。包含的元素(因为它是一个列表)也被序列化。只是那个整数属性没有。
-
你能告诉我们你是如何序列化的代码吗?
标签: c# xml serialization xml-serialization