私はもともと Google Protobuf 3.1 プロトコル コンパイラを使用して Filepath.cs クラスを自動生成していました。filepath.proto ファイルは proto2 構文用に記述されているため、proto3 に準拠するようにファイルを手動で変更する必要がありました。
どうしようもない理由で、proto2 構文に固執する必要があることがわかりました。protoc バージョン 3.0.0alpha3 が proto2 ファイルの C# コード生成をサポートしていることがわかりました (新しい protoc バージョンは proto2 ファイルの C# コード生成をサポートしていないため、alpha 3 に戻しました)。
生成されたコードは異なり、私の既存のコード (もともと protoc 3.1 で動作していたが、動作しなくなりました):
FilePath fp = new FilePath
{
Path = "TestPath",
TestValue = 5.0f
};
このコードのチャンクは、alpha3 で生成されたファイルでは機能しなくなりました。古いバージョンの Protobuf を使用してオブジェクトを適切にシリアル化/逆シリアル化する方法を知っている人はいますか?古いチュートリアルがどこかにアーカイブされているかどうかは?
私はできる:
FilePath fp;
fp.Path = "test_path_here"; //ERROR - no SETTER, only a GETTER
フィールドPath
とにTestValue
はゲッターのみがあり、セッターはありません。