我們使用protobuf.net來序列化移動設備和後端服務之間的類,但是現在我們需要根據用戶的「上下文」來調整發送給客戶端的內容。protobuf.net&conditional serialization
我們通常會通過實現ISerializable接口並查看上下文值來決定要序列化的內容。同樣在構造函數中,我們將反序列化提供的值。
但是看起來ISerializable沒有實現/支持(我明白爲什麼)protobuf.net,所以我們通過採用'ShouldSerialize *'和'OnSerializing'方法來解決這個問題。然而,這並不意味着我們最終不得不將StreamingContext存儲在每個不合適的類中。我們可以將其放在全球範圍內,但這也不對。
有沒有更好的方法來實現我們想要的,例如序列化只使用protobuf.net格式,但序列化是受外部提供的上下文影響?
對我們來說這將是非常有用的。我們使用protobuf將數據從服務器傳輸到移動設備,因此每個字節都很重要。傳統的ISerializable方法爲我們提供了我們從功能角度想要的東西,但是由於我們沒有使用protobuf使得它不是首發,所以我們獲得了額外的大小。 – jamie 2012-04-20 13:24:07