2011-05-06 217 views
0

我有一個對象列表,比如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個項目。

感謝提前:)

回答

3

首先,你有沒有測試,以確保有性能問題?其次,XmlSerializer不能刪除表示已經被移除的項目的XML位,而沒有執行完整的序列化以找出已經改變的內容以及如何改變XML。因此,雖然性能可能會或可能不會成本高,具體取決於您的對象,但無法序列化/僅反序列化部分列表,並且只能根據更改的項目對XML進行小的修改。

但是,如果您經常序列化/反序列化,並對列表的某些部分進行更改,那麼在您的情況下是否可以使用數據庫?

+1

+1,esp對可能使用數據庫的評論。我們確實需要知道更廣泛的上下文以瞭解是否需要或可能實現一個對象時序序列化。 – 2011-05-06 04:12:38

+0

自從我製作WP7應用程序以來,沒有數據庫。但是,既然沒有其他辦法,我會認爲我以正確的方式去做。 – TCM 2011-05-06 15:06:48