[英]Ruby generated grpc class service name conflict
我有一个奇怪的情况,消息名称与我的原型定义中生成的类相同,即服务
例如:proto 文件
service Dummy {
rpc Register(RegisterServiceRequest) returns Service {}
}
message Service {
string name = 1;
}
当我生成 grpc 服务时,它变成
pb.rb 文件
module ...
module ...
class Service
include GRPC::GenericService
self.marshal_class_method = :encode
self.unmarshal_class_method = :decode
self.service_name = 'some.Dummy'
rpc :Register, RegisterServiceRequest, Service
end
Stub = Service.rpc_stub_class
end
end
当我尝试运行时,它抛出以下argumenterror
/Library/Ruby/Gems/2.6.0/gems/grpc-1.23.0-universal-darwin/src/ruby/lib/grpc/generic/service.rb:126:in assert_can_marshal
/Library/Ruby/Gems/2.6.0/gems/grpc-1.23.0-universal-darwin/src/ruby/lib/grpc/generic/service.rb:94:in`rpc'
如何解决问题? 是否可以在生成服务 pb.rb 文件时覆盖class Service
的名称
冲突在这里:
# ⇓⇓⇓⇓⇓⇓⇓
service Dummy {
...
# ⇓⇓⇓⇓⇓⇓⇓
message Service
国内有一个 GRPC 类Service
。 重命名您的以使用有点像message MessageService
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.