mirror of https://github.com/grpc/grpc.git
Merge branch 'master' of https://github.com/grpc/grpc into channelz-subchannels
commit
2428109608
71 changed files with 273 additions and 654 deletions
@ -0,0 +1,53 @@ |
||||
# gRPC C# Server Reflection |
||||
|
||||
This document shows how to use gRPC Server Reflection in gRPC C#. |
||||
Please see [C++ Server Reflection Tutorial](../server_reflection_tutorial.md) |
||||
for general information and more examples how to use server reflection. |
||||
|
||||
## Enable server reflection in C# servers |
||||
|
||||
C# Server Reflection is an add-on library. |
||||
To use it, first install the [Grpc.Reflection](https://www.nuget.org/packages/Grpc.Reflection/) |
||||
Nuget package into your project. |
||||
|
||||
Note that with C# you need to manually register the service |
||||
descriptors with the reflection service implementation when creating a server |
||||
(this isn't necessary with e.g. C++ or Java) |
||||
```csharp |
||||
// the reflection service will be aware of "Greeter" and "ServerReflection" services. |
||||
var reflectionServiceImpl = new ReflectionServiceImpl(Greeter.Descriptor, ServerReflection.Descriptor); |
||||
server = new Server() |
||||
{ |
||||
Services = |
||||
{ |
||||
// the server will serve 2 services, the Greeter and the ServerReflection |
||||
ServerReflection.BindService(new GreeterImpl()), |
||||
ServerReflection.BindService(reflectionServiceImpl) |
||||
}, |
||||
Ports = { { "localhost", 50051, ServerCredentials.Insecure } } |
||||
}; |
||||
server.Start(); |
||||
``` |
||||
|
||||
After starting the server, you can verify that the server reflection |
||||
is working properly by using the `grpc_cli` command line tool: |
||||
|
||||
```sh |
||||
$ grpc_cli ls localhost:50051 |
||||
``` |
||||
|
||||
output: |
||||
```sh |
||||
helloworld.Greeter |
||||
grpc.reflection.v1alpha.ServerReflection |
||||
``` |
||||
|
||||
For more examples and instructions how to use the `grpc_cli` tool, |
||||
please refer to the [`grpc_cli` documentation](../command_line_tool.md) |
||||
and the [C++ Server Reflection Tutorial](../server_reflection_tutorial.md). |
||||
|
||||
## Additional Resources |
||||
|
||||
The [Server Reflection Protocol](../server-reflection.md) provides detailed |
||||
information about how the server reflection works and describes the server reflection |
||||
protocol in detail. |
Loading…
Reference in new issue