protobuf是google的一個開源項目,可用于以下兩種用途:
(1)資料的存儲(序列化和反序列化),類似于xml、json等;
(2)制作網絡通信協定。
源代碼下載下傳位址:https://github.com/mgravell/protobuf-net
開源項目位址如下:https://code.google.com/p/protobuf-net/,下載下傳解壓後的目錄如下所示,每個檔案夾的詳細介紹都在最後一個txt檔案裡面了。

ProtoGen是用來根據***.proto檔案生成對應的***.cs檔案的,而做資料存儲功能隻需要用到protobuf-net.dll即可,至于使用哪個版本項目情況決定。下面的例子在Windows平台下建立一個C#的控制台工程,并引入ProtoBufNet\Full\net30\protobuf-net.dll,代碼如下所示:
可以看到序列化和反序列化的代碼非常簡單。
protobuf提供了一種proto腳本用來編寫***.proto檔案,這種腳本格式簡單、可讀性強、友善擴充,用proto腳本定義網絡協定是非常好用的。
下面是一個proto腳本的簡單例子:
requied是必須有的字段、optional是可有可無的字段、repeated是可以重複的字段(數組或清單),同時枚舉字段都必須給出預設值。
接下來就可以使用ProgoGen來根據proto腳本生成源代碼cs檔案了,指令行如下:
protogen -i:test.proto -0:test.cs -ns:MyProtoBuf
-i指定了輸入,-o指定了輸出,-ns指定了生成代碼的namespace,上面的proto腳本生成的源碼如下:
to be continue...