我目前正在使用Protocol Buffers(版本3 C#)。 我正在向不同的服務來回發送消息。 ,並且當前試圖將某些存儲在某些消息中的數據保存到數據庫中(可能是真的)。序列化/反序列化協議緩衝區
問題在於字節[]作爲字節字符串和列表< T>創建類型創建爲RepeatedField < T>。 現在我遇到的問題是我沒有設法成功地序列化或反序列化它們。
基本類型就像一個魅力,但協議緩衝區自己的類型可以是一個挑戰。
我試圖AutoMapper,創造這使字節字符串能夠序列化/反序列化映射但RepeatedField是困難的,因爲它是隻讀的,並有一個私人二傳手,而不是在構造函數中設定。
我無法設法讓AutoMapper正確映射到它,如果沿途有更多的麻煩,並且想知道是否有更簡單的方法將消息保存在數據庫中,我不會感到驚訝嗎?
我已經閱讀了舊版本的protobuf(如果我沒有弄錯),那就是所謂的構建者,您可以訪問每個可變的消息的屬性,並且會使序列化/反序列化更容易。還是有更明顯的方式來訪問數據並將其存儲在我沒有看到的數據庫中?
我明白爲什麼消息是不可變的,但是真的沒有直接的方式來將接觸數據保存到數據庫嗎?感覺像一個重要的功能。 PS:我知道有一個處理序列化/反序列化的protobuf-net解決方案,但它只支持protobuf v.2,而且我很依賴v.3的特性,如任何。
太棒了!很久以來,我涉足這個項目,但爲了好奇,我一定會檢查一下。我的解決方案是下載protoc客戶端的源代碼,並更改代碼生成器,這樣如果我沒有弄錯的話,所有重複的字段都有公共setter。如果它可以工作,請選擇您的解決方案。我會讓你知道的,謝謝。 – user4319995
這個解決方案使用proto3和AutoMapper 6.2.2爲我工作 –