ProtoGen.exe Включить генерацию сервиса
От sample.proto
package Busy.Proto;
option optimize_for = SPEED;
message BusyRequest { required string message = 1;}
message BusyResponse {required string message = 1;}
service BusyService {rpc Send (BusyRequest) returns (BusyResponse);}
порождающий .cs
файл, с помощью следующей команды, в консоли диспетчера пакетов
ProtoGen.exe sample.proto -output_directory="C:\SomeDir"
Результирующий sample.cs
файл
// Generated by ProtoGen, Version=2.4.1.555, Culture=neutral, PublicKeyToken=55f7125234beb589. DO NOT EDIT!
#pragma warning disable 1591, 0612, 3021
#region Designer generated code
using pb = global::Google.ProtocolBuffers;
...
#region Services
/*
* Service generation is now disabled by default, use the following option to enable:
* option (google.protobuf.csharp_file_options).service_generator_type = GENERIC;
*/
#endregion
...
Пытался
- бежать
ProtoGen.exe sample.proto -output_directory="C:\SomeDir" option (google.protobuf.csharp_file_options).service_generator_type = GENERIC;
в консоли диспетчера пакетов. Заканчивается с ошибкой
Термин "google.protobuf.csharp_file_options" не распознается как имя.
- добавлять
option service_generator_type = GENERIC;
вsample.proto
, Заканчивается с ошибкой
не может разрешить символ
Как включить Services
поколение?
1 ответ
В последних версиях protogen вы можете передать опцию services, чтобы также создавать службы:protogen --csharp_out=. --proto_path=. +services=true *.proto
Я тестировал protobuf-net.Protogen --version 3.0.0-alpha.122, и, похоже, он не работает с 2.3.17 (последняя стабильная версия на сегодняшний день)
Нашел ответ на обсуждение здесь
ProtoGen.exe -service_generator_type=GENERIC sample.proto -output_directory="someDIR"