【问题标题】:Grpc Server Can not Overload methodGrpc Server 无法重载方法
【发布时间】:2021-06-26 01:27:34
【问题描述】:

我想用 Grpc C# 构建一个非常简单的客户端和服务器应用程序 我第一次成功构建它,但是当我想构建另一个服务时出现错误'C0115 找不到合适的覆盖方法'

这是我的代码:

ServiceHubService.cs in Services Folder

`
namespace NetPlus.Server.Core

{
    public class ServerHubService : ServereHub.ServereHubBase
   
 {
      
 
private readonly ILogger<ServerHubService> _logger;

       
 public ServerHubService(ILogger<ServerHubService> logger)
        {
            _logger = logger;
        }

        public override Task<ActionResult> GetActionResult(ActionRequest request, ServerCallContext context)
        {
            return Task.FromResult(new ActionResult
            {
                ActionResultType = "Test"
            });
        }
    }
    
}`

ProtoBuffer 文件:

  syntax = "proto3";
        
        option csharp_namespace = "NetPlus.Server.Core";
        
        package server;
        
        
        service ServereHub  {
        
        rpc ActionManager (ActionRequest) returns (ActionResult);
        
        }
        
        message ActionRequest {
            string ActionType = 1;
        }
        
        message ActionResult {
            string ActionResultType = 1;
        }

怎么了?

我用过

视觉工作室 16.10.0 net 6.0 预览

【问题讨论】:

    标签: c# asp.net-core grpc .net-5


    【解决方案1】:

    在您的 proto 文件中,您已经定义了

    rpc ActionManager (ActionRequest) returns (ActionResult);
    

    这意味着您的方法名称将是 ActionManager,但您会覆盖 GetActionResult

    那么,请您尝试重命名方法名称吗?

    【讨论】:

    • 非常感谢,在那之后我定义了客户端并得到相同的错误 var channel = GrpcChannel.ForAddress("localhost:5001"); var client = new ServiceHub.ServiceHubClient(channel); var reply = await client. ActionManagerAsync(new ActionRequest { ActionType="Test"}); 错误服务未实现
    猜你喜欢
    • 2019-09-17
    • 1970-01-01
    • 1970-01-01
    • 2021-02-06
    • 2010-09-30
    • 2021-03-01
    • 2011-08-27
    • 1970-01-01
    • 2018-11-01
    相关资源
    最近更新 更多