【发布时间】:2011-01-12 09:59:25
【问题描述】:
我有这门课:
public class MySerializableClass
{
public List<MyObject> MyList { get; set; }
}
如果 MyList 在 MySerializableClass 被序列化时为空,我也需要在反序列化时将其设为空,但 XmlSerializer 在反序列化我的类时总是将其初始化。
有没有办法避免它初始化空属性?
MyList 为 null 时甚至不会记录在序列化文件中。当我用空值加载它并再次保存时,MyList 不再为空,它被序列化为具有 0 个项目但不为空的 List。
谢谢。
更多信息:
由于类结构中的一些代码限制,IsDeserializing 属性不可行
【问题讨论】:
-
哇,System.Xml 从来没有让我感到惊讶。有一个集合类成员的公共设置器是非常不寻常的,请检查您的设计以验证这是您真正想要的。没有 setter 也能正常工作。
-
这不是我真正想要的。这是序列化程序想要的。如果我将 get 或 set 设为私有,则反序列化器将失败。
标签: .net xmlserializer