如何在 C# 中生成 .proto 文件或使用 'Code First gRPC'
How do I generate .proto files or use 'Code First gRPC' in C#
我想在 asp.net 核心 Web 应用程序中将 gRPC 与 .NET 结合使用。如何从现有的 C# class 和模型对象生成必要的 .proto 文件?我不想重新编写反映现有代码的 .proto 文件,我希望从 class 和模型对象自动生成 .proto 文件。
我调用这个方法来注册我的服务class。
builder.MapGrpcService<MyGrpcService>();
public class MyGrpcService
{
public Task<string> ServiceMethod(ModelObject model, ServerCallContext context)
{
return Task.FromResult("It Worked");
}
}
ModelObject
具有 [DataContract]
和 [DataMember]
订单属性。
这可能吗?我在网上看到的每个示例都以 .proto
文件开头。我已经在 MyGrpcService
class 中定义了我想要的服务方法。但也许这只是倒退到标准的做事方式......
像旧的 .NET 远程处理这样的东西是理想的,你可以从远程端点请求一个接口,它神奇地使用 gRPC
来回通信,但也许这太简单了查看。
您可以使用 Marc Gravell 的 protobuf-net.Grpc
for this. Having a code-first experience when building gRPC services is the exact use case why he started working on it. It builds on top of protobuf-net
,它已经在 C# 类型和 protobuf 之间添加了序列化功能。
查看 documentation 以了解如何开始使用该库,甚至观看 Marc 在他的演讲“使用 gRPC 和其他技巧在服务之间交谈”的以下录音之一中介绍该主题:
我认为他实际上在 9 月份更新了 .NET Core 3.0 的发布位,所以那可能是更新的版本。
还有一些 code samples 可以查看设置后的效果。
我想在 asp.net 核心 Web 应用程序中将 gRPC 与 .NET 结合使用。如何从现有的 C# class 和模型对象生成必要的 .proto 文件?我不想重新编写反映现有代码的 .proto 文件,我希望从 class 和模型对象自动生成 .proto 文件。
我调用这个方法来注册我的服务class。
builder.MapGrpcService<MyGrpcService>();
public class MyGrpcService
{
public Task<string> ServiceMethod(ModelObject model, ServerCallContext context)
{
return Task.FromResult("It Worked");
}
}
ModelObject
具有 [DataContract]
和 [DataMember]
订单属性。
这可能吗?我在网上看到的每个示例都以 .proto
文件开头。我已经在 MyGrpcService
class 中定义了我想要的服务方法。但也许这只是倒退到标准的做事方式......
像旧的 .NET 远程处理这样的东西是理想的,你可以从远程端点请求一个接口,它神奇地使用 gRPC
来回通信,但也许这太简单了查看。
您可以使用 Marc Gravell 的 protobuf-net.Grpc
for this. Having a code-first experience when building gRPC services is the exact use case why he started working on it. It builds on top of protobuf-net
,它已经在 C# 类型和 protobuf 之间添加了序列化功能。
查看 documentation 以了解如何开始使用该库,甚至观看 Marc 在他的演讲“使用 gRPC 和其他技巧在服务之间交谈”的以下录音之一中介绍该主题:
我认为他实际上在 9 月份更新了 .NET Core 3.0 的发布位,所以那可能是更新的版本。
还有一些 code samples 可以查看设置后的效果。