Home  >  Article  >  Backend Development  >  Using gRPC in C#

Using gRPC in C#

黄舟
黄舟Original
2017-02-07 16:52:044462browse

Due to NuGet, C# is very simple to configure the project.

1. Add ProtocolBuffer and gRPC reference in NuGet

protocol buffer 3.0 version, select Include Prerelease in the NuGet plug-in interface, and look for google protocol buffer.
If you do not select include rerelease, the protocol buffer found is 2.4 and cannot be compiled

2. Define proto

Design proto protocol file, including service agreement and data. gRPC must use protocol buffer3.0 version, so syntax is set to proto3.
Greeter is the service name
HelloRequest is the request data
HelloReply is the reply data

syntax = "proto3";option java_multiple_files = true;option java_package = "io.grpc.examples.helloworld";
option java_outer_classname = "HelloWorldProto";option objc_class_prefix = "HLW";

package helloworld;

// The greeting service definition.
service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

// The request message containing the user's name.message HelloRequest {  string name = 1;
}

// The response message containing the greetingsmessage HelloReply {  string message = 1;
}

3. Generate proto access class

After defining the proto file, pass protocol buffer3.0 The provided protoc.exe tool generates access classes. Here, the C# plug-in grpc_csharp_plugin.exe of protoc defined by gRPC is used instead of protoGen.exe.
Put the following files in the same folder:

grpc_csharp_plugin.exehelloworld.protoprotoc.exe

Create a bat file and write the following command line:

protoc.exe -I=. --csharp_out=. --grpc_out=. --plugin=protoc-gen-grpc=grpc_csharp_plugin.exe helloworld.proto

Execute the bat file and get the access class of proto:

helloworld.cshelloworldGrpc.cs

4. Create a C# project

Add two access class files to the C# project, copy the C# example of gRPC to Program.cs, and compile it successfully.

The above is the content of using gRPC in C#. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn