2016-09-21 3 views
0

Ich habe eine C# -Klasse mit protobuf-net serialisiert. Das resultierende Byte-Array wird in einer Datenbank gespeichert. Dies ist aus Performance-Gründen und ich werde wahrscheinlich nicht in der Lage sein, dieses Design zu ändern. Die C# -Sprache macht es nicht möglich, zu verhindern, dass Klassen geändert werden, und die Klassenstruktur, die für die Deserialisierung mit der Zeit übergeben wird, kann Änderungen erfordern, die nicht mit denen für die Serialisierung übereinstimmen, wodurch der Abruf fehlschlägt.Versionskontrolle eines protobuf-net serialisierten C# -Objekts

Gibt es außer der Wrapper-Technik, die here vorgeschlagen wurde, ein Muster oder eine Technik zur Behandlung dieser Art von Problem?

Antwort

0

Die einzige andere Technik, die mir in den Sinn kommt, ist die Version der Klassen, die deserialisiert werden müssen, um nichts zu verlieren, wenn Sie einige Änderungen vornehmen müssen. Wenn Sie eine Instanz dieser Klassen serialisieren, müssen Sie auch die Version der Klasse serialisieren (dies könnte ein Feld der Klasse selbst sein).

Ich denke nicht, dass dies die beste Lösung, sondern eine Lösung ist. Die Versionierungsstrategie könnte sehr schwierig zu verwalten werden, wenn die Änderungen (und die Versionen) zu wachsen beginnen.

Verwandte Themen