如何在C 裡序列化集合物件

2021-05-26 21:51:12 字數 1134 閱讀 6022

collection主要是指像array, arraylist, list, dictionary, hashtable這些資料型別,大家平時用的很多。如果乙個類中有乙個collection型別的成員,在對這個類進行xml序列化的時候,應該如何處理?應該說在.net當中這是比較簡單的,只要建立乙個xmlserializer類就可以幫你自動搞定,不過有的時候你可能需要對自動的序列化過程施加更多的控制,比如xml的結構是實現固定的,你必須按照要求去生成xml結構。

使用不同的屬性可以靈活的控制生成的xml,這裡我就不多介紹了,主要講一下如何序列化比較複雜的collection結構。下面的方法,對於所有實現了ienumerable介面的collection都有效。

我使用msdn中的例子,不過沒有使用陣列或者arraylist,而是使用了比較高階的資料型別list,希望在講解如何序列化xml的同時給使用list的同學提供點參考。

序列化乙個list

下面的**示範了如何序列化乙個 list,實際上和序列化其它類一樣,把這個類扔給serialize()函式即可。

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.xml.serialization;

using system.io;

namespace serializecollection

public void serializedocument(string filename)

}// this is the class that will be serialized.

[serializable]

public class myrootclass

private listitems;

public listitems

set }}

public class item}

複製**

最後序列化成的xml:

<?xml version="1.0" encoding="utf-8"?>

widget1

w1231

3widget2

w28002

複製**

C 物件序列化

1.序列化和反序列化 2.binaryformatter類有2個方法 1 void serialize stream stream,object graph 物件graph序列化到stream中 2 object deserialize stream stream 將物件從stream中反序列化,返...

物件,物件集合的簡單Xml序列化與反序列化

物件,物件集合的簡單xml序列化與反序列化 本文描述如何使用clr中的 stringwriter,xmlserializer將物件,物件集合 序列化為xml格式的字串,同時描述如何進行 反序列化.c 版本 c 3.0 開發環境 vs 2008 主要方法 複製複製 複製儲存 usingsystem u...

C 序列化物件及反序列化

壓縮方法 region 壓縮 壓縮 未被壓縮的位元組資料 public static byte compress byte bytes 壓縮 未被壓縮的資料 public static byte compress object dataoriginal return compress bytes 壓...