2012-12-14 66 views
1

通常當我在做我使用的Protobuf走動所仿照的是正在建設中,從移動我的數據/由目標的系統網絡的自定義對象基於網絡的工作其他系統。建議爲Entityspaces的集成Protobuf.Net

我目前正在參與增強使用基於專有文本的協議的項目,該協議主要使用文本作爲數據訪問層的數據和實體空間的序列化(,|和[]符號)。

我問的問題是我應該創建另一個對象層,它提供Protobuf網絡對象,這些網絡對象是從Entityspaces對象的數據的「加載」中填充的,或者我應該將必要的protobuf標記添加到對象中在Entityspaces對象(它們會從數據庫中自動生成的,目前沒有這樣的)

回答

0

可能會有兩種方式。如果您需要到protobuf的數據編碼成文本格式:使用基64,這方便不使用|/[/]

如果您更願意對當前未歸因的對象進行原始編碼編碼,也有辦法做到這一點:如果數據庫中的類型生成爲partial類,那麼最簡單的方法就是(在另一個代碼文件):

namespace The.Same.Namespace { 
    [ProtoContract] 
    [ProtoPartialMember(1, "Foo")] 
    [ProtoPartialMember(2, "Bar")] 
    ... 
    partial class SomeEntity {} 
} 

其中FooBar是會員,你想序列化。 ,或者也可以在運行時配置整個模型:

RuntimeTypeModel.Default.Add(typeof(SomeEntity), false).Add("Foo", "Bar"); 

(這是一個非常基本的配置;更加微妙可供選擇)

+0

更在上週末的一些做了評價。在網絡上有一些直接的實體傳輸,但也有額外的和不同的數據,所以可能只是使用自定義的標準Protobuf標記類。謝謝 –