繁体   English   中英

Ruby 生成的 grpc 类服务名称冲突

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM