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"
Другие вопросы по тегам