如何在 C# 中使用 protobuf 接口
Posted
技术标签:
【中文标题】如何在 C# 中使用 protobuf 接口【英文标题】:How to use protobuf interface in C# 【发布时间】:2013-09-10 09:18:04 【问题描述】:我编写了一个 .proto 文件,其中包含一个服务:
service ServerService
rpc HelloServer (Word) returns (Void);
然后,我使用 protobuf-net 生成 .cs 文件:
public interface IServerService
gt.Void HelloServer(gt.example.Word request);
但我不知道如何使用它。有文档吗?
【问题讨论】:
protobuf-net 不包括对rpc
存根的任何特定支持——主要是因为 protobuf 规范本身在这里没有定义任何东西。基本上,谷歌并没有开源与他们使用 protobuf 密切相关的 RPC 堆栈
那么,我不能在 C# 中使用 'service' 和 'rpc' 吗?
在任何语言中没有定义的实现;未指定。如果自上次查看以来出现了共识实现(在协议级别),我很乐意重新审视它 - 但上次我检查有六个不同、分散且不兼容的实现,每个都在工作不同的方式。
【参考方案1】:
新标准gRPC 正在兴起并在 .net 核心中得到支持。
查看本教程:https://docs.microsoft.com/en-us/aspnet/core/tutorials/grpc/grpc-start?view=aspnetcore-3.1&tabs=visual-studio
本教程还链接到有关 .NET 中 gRPC 的其他信息。文档非常好。
【讨论】:
以上是关于如何在 C# 中使用 protobuf 接口的主要内容,如果未能解决你的问题,请参考以下文章
C# Protobuf-net:如何从网络流中连续反序列化?