[C#][CodePlex]LevelUp Serializer
因為網路上的函式庫都不太合手,想整理個自己用的序列化函式庫已經有兩三年了,不是想做多大的函式庫,但卻也遲遲沒有毅力將這完成。直到這幾天才將寫到一半的函式庫打開來繼續撰寫、調整、測試,終於擠出了第一版本,目前已經可在CodePlex的LevelUp Serializer頁面中看到。
以這函式庫來說大概有以下幾個特點
- Ease of use
- Supports almost all serializer, like Binary、Xml、Soap、Json、DataContract.
- Support serialize to file、serialize to stream、deserialize from file、deserialize from stream.
- Support Xml encryption.
- Support serialize accelerate through the XML serialization assemble.
簡單的說它就是使用簡單(對筆者而言)、支援大部份的序列化格式、支援序列化到檔案或是串流、從檔案或串流解序列化回物件、支援XML序列化後加密、以及會自動偵測XML序列化組件來加速等功能。
架構上也十分簡單,沒有什麼特別的設計。除了可以直接建出需要的Serializer來用外,也可以直接透過Serializer這個輔助類別去動作。
使用方式就不多做說明,方案裡面的資料應該很齊全,除了類別圖外,也附有一些簡單的單元測試,看一下應該就OK了。簡單的帶一下,大概就是先取得對應的Serializer,這邊可以透過Serializer.GetSerializer取得。
ISerializer serializer = Serializer.GetSerializer(SerializerType.Xml);
或是直接New出對應的Serializer。
ISerializer serializer = New XmlSerializer();
然後透過對應的Serializer去做序列化或解序列化的動作。
serializer.Serialize(obj, "Data.dat");
...
var deserializedObj = serializer.DeSerialize<OBJECT_TYPE>("Data.dat");
除此之外也可以直接透過Serializer輔助類別去做序列化或解序列化。
Serializer.Serialize(obj, "Data.dat", SerializerType.Xml);
...
var deSerializedObj = Serializer.DeSerialize<OBJECT_TYPE>("Data.dat", SerializerType.Xml);