You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2022中C# gRPC服务使用.proto文件时类找不到问题的解决方法

解决ASP.NET Core gRPC服务中找不到生成类的问题

问题根源

错误CS0246 The type or namespace name 'Database' could not be found主要由两个原因导致:

  • 未引入生成类所在的命名空间
  • 基类名称错误,与proto定义不匹配

具体修正步骤

1. 添加正确的命名空间引用

你的proto文件指定了option csharp_namespace = "LiteDistCoordinator.Protos";,所有生成的gRPC类(包括服务基类)都在这个命名空间下。需要在DatabaseService.cs中添加对应的using指令:

using LiteDistCoordinator.Protos;

2. 修正服务基类名称

你在proto中定义的服务名为DatabaseService,gRPC工具会生成名为DatabaseServiceBase的抽象基类(而非你代码中的Database.DatabaseBase)。修改后的类继承代码如下:

public class DatabaseService : DatabaseServiceBase

3. 修改后的完整代码示例

using Grpc.Core;
using LiteDistCoordinator.Protos;
using Microsoft.Extensions.Logging;

namespace LiteDistCoordinator.Services
{
    public class DatabaseService : DatabaseServiceBase
    {
        private readonly ILogger<DatabaseService> _logger;
        public DatabaseService(ILogger<DatabaseService> logger)
        {
            _logger = logger;
        }

        // 实现各个RPC方法...
    }
}

额外排查建议

  • 重新生成项目:执行Clean + Build操作,确保gRPC工具重新生成最新的代码文件
  • 统一Grpc包版本:你当前使用的Grpc.AspNetCore(2.57.0)和Grpc.Tools(2.63.0)版本不一致,建议统一为相同版本(比如2.63.0),避免版本兼容问题

内容的提问来源于stack exchange,提问作者Felix An

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 06:55:54