我有一个C#对象,它包含一个大列表(10-100MB)和一些其他属性。我想序列化对象,但我不想序列化列表。有没有简单的方法呢?
谢谢!
答案 0 :(得分:5)
由于标记为xml,因此可以像将[XmlIgnore]
添加到相应的属性一样简单:
[XmlIgnore]
public List<Foo> Items {get;set;}
然后正常使用XmlSerializer
。
如果它需要可控(有时是,有时没有),那么另一种方法是添加:
public bool ShouldSerializeItems() {
// your logic here
}
许多序列化程序都识别此模式,包括XmlSerializer
。
答案 1 :(得分:0)
如果您的意思是序列化从数据库加载对象,那么我可以推荐NHibernate
,您只需标记,您要在列表上启用延迟加载,并且您的对象将返回Items
设置为null(如果你仍处于事务中,Items
将在尝试访问它之后加载;如果你已经没有事务,你会得到一个nullPointer异常我认为...但是基本上,任何类型的Lazy-loading肯定是一个原则,你应该留意。
编辑:错过了标签,对我感到羞耻