1
我希望能夠通過序列化/反序列化僅更改的字段來更新對象。 我使用序列化程序的非通用版本,因爲我不知道編譯時的類型。在運行時,我確實有類型。可以使用Protobuf-net部分序列化一個對象嗎?
本地我想要做的事,如:
var existingObject.SomeField = 10;
// Say I only want to serialize field B
byte[] serializedField = SerializeField(existingObject, "SomeField")
遠程我會反序列化,並創建一個新的對象:
Merge(serializedField, existingObject);
似乎沒有成爲一個辦法做到這一點使用非泛型接口?
謝謝馬克。 ShouldSerialize模式將很有用。說我可以部分序列化它。我如何反序列化?這是我遇到的問題。我用默認值序列化一個對象,除了我設置的單個字段。稍後,我想通過發送新的序列化空對象將對象重置爲默認值。更新的對象非常小,因爲沒有設置字段。將它合併到原始文件中不起作用。我的意圖是將字段設置爲零。所以真的,我想反序列化到一個現有的對象,但首先清除現有的領域。 – Johan 2011-06-06 11:29:58
@Johan - 並不完全遵循。如果您的意思是「如何將更改加載到現有對象中」,那麼這就是「Merge」的用途 - 或者在第2版中 - 只是將該對象傳遞給「反序列化」。 – 2011-06-06 12:17:14