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 壓...