各 protobuf シリアル化データに独自のバージョン番号をタグ付けしたいと考えています。必要に応じて、データのシリアル化に使用されたバージョンを確認できます。protobuf はアイデアに基づいて設計されているため、バージョンを確認する必要はありません。
これを行うには、.net シリアライゼーションで行ってきたのと同じ方法を使用して、バージョン フィールドを追加します。
これがprotobufでも推奨される方法であることを確認したいだけです。
class protodata1
{
public protodata1()
{
version = 1;
}
[Protomember(1)]
int version { get; set;}
[Protomember(2)]
int somedata { get; set;}
}
また、protobuf-net で上記のように行う必要がありますか? クラスが非サイラル化されている場合にオーバーライドされるコンストラクターでバージョンを割り当てます。新しいオブジェクトをシリアル化するには、バージョン 1 を使用します。