我们希望将我们的项目从grpc.core迁移到gprc。在我的grpc服务器中,我引用了包Grpc.AspNetCore。proto文件在不同的项目中编译并共享。当我实现服务器方法时,如下所示:
**using Grpc.Core;**
using Sample.Shared;
namespace Sample.GrpcServer.Services;
public class CustomerService : CustomerGrpcService.CustomerGrpcServiceBase
{
private readonly ILogger<CustomerService> _logger;
public CustomerService(ILogger<CustomerService> logger)
{
_logger = logger;
}
public override Task<CustomerListResponse> GetCustomerList(CustomerListRequest request, ServerCallContext context)
{
...
}ServerCallContext类要求我导入要删除的Grpc.Core。我应该如何使用grpc来实现重写(例如ServerCallContext类)?
看起来,ServerCallContext是在包含名称空间Grpc.Core的包Grpc.Core.Api中实现的。这有点令人困惑,但可能是为向后兼容实现的。也许有人可以对此发表评论。因此,在这个场景中,唯一真正要做的事情就是使用正确的nuget包Grpc.AspNetCore.Server。对Grpc.Core的引用将从此和基础引用程序集中提取。
发布于 2022-02-04 14:44:16
Grpc.AspNetCore包包含一个名称空间Grpc.Core,类类似于ServerCallContext,这些类也在不推荐的Grpc.Core包中。
我们删除了对不推荐的包Grpc.Core的引用,也删除了对Google.Protobuf和Grpc.Tools的引用,因为它们包含在Grpc.AspNetCore包中。
此链接提供有关grpc迁移的其他信息:https://learn.microsoft.com/en-us/aspnet/core/grpc/migration?view=aspnetcore-6.0。
https://stackoverflow.com/questions/70883411
复制相似问题