序列化对象列表

时间:2011-05-06 03:58:37

标签: c# xml

我有一个对象列表,比如List<Topic>我想序列化它们。我正在使用XmlSerializer,它工作正常。但每次它都会序列化和反序列化整个对象,那么它不会影响性能吗?列表的项目可以随时删除,一旦删除它也应该从Xml中删除。

这是我目前的序列化代码: -

  XmlSerializer serializer = new XmlSerializer(typeof(List<Topic>));
                    serializer.Serialize(somestream, topicList);

要反序列化,我只想写: -

  XmlSerializer serializer = new XmlSerializer(typeof(List<Topic>));
                    topicList = serializer.Deserialize(somestream) as List<Topic>;

这项技术可以或者我们可以提高性能吗?列表通常包含80-100个项目。

提前致谢:)

1 个答案:

答案 0 :(得分:3)

首先,您是否经过测试以确保存在性能问题?

其次,XmlSerializer无法删除代表已删除的项目的XML位,而无需执行完整的序列化来计算已更改的内容以及更改XML的方式。

因此,虽然根据您的对象,性能可能成本高昂,也可能成本不高,但是无法仅序列化/反序列化列表的一部分,只能根据更改的项目对XML进行少量修改。

但是,如果您经常序列化/反序列化,并对列表的某些部分进行更改,那么在您的情况下是否可以查看使用数据库?