WebApi集成Grpc客户端

1.依赖包

  • Grpc.Net.Client
  • Google.Protobuf
  • Grpc.Tools

2.把相应的protos文件copy到项目文件目录下,重新编译项目,IDE会自动给你在项目文件中添加你的proto文件引用,如果没有可以自己手动添加。

    <ItemGroup>
        <Protobuf Include="Protos\*.proto" GrpcServices="Client" Link="Protos\%(RecursiveDir)%(Filename)%(Extension)" />
        <Protobuf Update="Protos\Test.proto">
            <Link>Protos\Test.proto</Link>
        </Protobuf>
    </ItemGroup>

4.通过ioc的模式来调用grpc服务,配置Startup.ConfigureServices

            AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);
            services.AddGrpcClient<Test.TestClient>(options => {
                options.Address = new Uri("http://localhost:5000");
            });

5.直接注入客户端后调用。

    public class DemoService : IDemo
    {
        private readonly Test.TestClient _TestClient;
        public DemoService(Test.TestClient TestClient)
        {
            _TestClient = TestClient
        }

        public void Test()
        {
            //调用
            TestClient.PrintAsync(new str 
            {
                str = "hello"
            });
        }
    }
posted @ 2020-11-07 11:43  她微笑的脸  阅读(437)  评论(0编辑  收藏  举报