1

我需要编写一个框架,并且有两个应用程序正在使用 gRPC 进行通信。它们共享一些共同的原型有效载荷。现在,挑战是,我想在那个 proto3 proto 合约中编写一些接口和实现。它是基于 c# 的应用程序,所以两者都将从 .proto 文件生成基于 c# 的原型类型。

有没有办法达到同样的效果。

4

1 回答 1

2

在原始 gRPC / .proto 术语中,这是service

service MyService {
  rpc SomeMethod (SomeDtoDefinedSomewhere) returns (AnotherDtoDefinedSomewhere);
  rpc AnotherMethod (Blah) returns (Whatever);
}

现在; 接下来会发生什么取决于您使用的工具;protoc将为此生成客户端代理和服务器存根,而不是 C# 接口。您可以“按原样”使用此接口,也可以将自己的接口添加为抽象。

但是,protobuf-net(.NET 上 protobuf 的单独实现)可以通过 .NET 将其作为纯 C# 接口使用protogen。不幸的是,我还没有通过调整来更新网站,以实际将服务定义作为接口发出。但它应该从 nuget 预览下降。

于 2020-02-18T08:49:43.617 回答