Сгенерированный протоколом код С# не компилируетсяC#

Место общения программистов C#
Ответить
Anonymous
 Сгенерированный протоколом код С# не компилируется

Сообщение Anonymous »

Я не разбираюсь в Windows/Visual Studio, поэтому, возможно, я делаю что-то явно неправильно. Мне придется написать оболочку gRPC для библиотеки для .net framework 4.8. Это означает, что я не смогу использовать более новую версию grpc-dotnet и должен использовать старую библиотеку Grpc.Core.
Насколько я могу судить, мне нужно вручную сгенерировать C# код с использованием протокола, поэтому я использую эту команду:

Код: Выделить всё

protoc --proto_path=. --csharp_out=grpc .\greet.proto --grpc_out=grpc --plugin=protoc-gen-grpc="C:\users\foo\.nuget\packages\grpc.tools\0.5.0\tools\grpc_csharp_plugin.exe"
Я получаю два файла с именами Greet.cs и GreetGrpc.cs, которые добавляю в свой проект Visual Studio. Я также добавил несколько самородков, которые показались мне актуальными (Google.Protobuf, Grpc.Core, Grpc.Tools, Grpc.Net.Client). Однако сгенерированный код не компилируется. Например, эта строка:

Код: Выделить всё

static readonly Marshaller __Marshaller_HelloRequest = Marshallers.Create((arg) => arg.ToByteArray(), global::Greet.HelloRequest.ParseFrom);
Приведет к ошибке:

Код: Выделить всё

'HelloRequest' does not contain a definition for 'ParseFrom'
Также эта строка:

Код: Выделить всё

static readonly Method __Method_Prepare = new Method(
MethodType.Unary,
"Prepare",
__Marshaller_PrepareRequest,
__Marshaller_PrepareResponse);
причины:

Код: Выделить всё

There is no argument given that corresponds to the required parameter 'responseMarshaller' of 'Method
.Method(MethodType, string, string, Marshaller, Marshaller)'
Буду признателен за любую помощь.


Подробнее здесь: https://stackoverflow.com/questions/793 ... ot-compile
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»