Я изначально использовал протоковый компилятор Google Protobuf 3.1 для автоматического создания класса Filepath.cs. Поскольку файл filepath.proto был написан для синтаксиса proto2, мне пришлось вручную изменить файл, чтобы он соответствовал proto3.Создание объектов с использованием старой версии Google Protobuf
Оказывается, мне нужно придерживаться синтаксиса proto2 по причинам, находящимся вне моего контроля. Я обнаружил, что protoc версии 3.0.0alpha3 поддерживает генерацию кода C# для файлов proto2 (новые версии protoc не поддерживают создание кода C# для файлов proto2, поэтому я вернулся к альфа-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
только добытчиками, ни сеттеров.