Queremos migrar nuestro proyecto de grpc.core a gprc-dotnet. En mi servidor grpc hago referencia a los paquetes Grpc.AspNetCore. El archivo proto se compila en un proyecto diferente y se comparte. Cuando implemento mi método de servidor como:
**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) { ... }La clase ServerCallContext requiere que importe Grpc.Core que quiero eliminar. ¿Cómo se supone que debo usar grpc-dotnet para implementar mis anulaciones, por ejemplo, la clase ServerCallContext?
Parece que ServerCallContext está implementado en el paquete Grpc.Core.Api que contiene el espacio de nombres Grpc.Core. Esto es un poco confuso, pero probablemente se implementó para compatibilidad con versiones anteriores. Tal vez alguien pueda comentar sobre eso. Entonces, lo único que realmente se debe hacer en este escenario es usar el paquete nuget correcto Grpc.AspNetCore.Server. Las referencias a Grpc.Core se extraerán de este y del ensamblaje referenciado subyacente.
Los paquetes Grpc.AspNetCore contienen un espacio de nombres Grpc.Core con clases como ServerCallContext que también estaban en el paquete obsoleto Grpc.Core .
Eliminamos las referencias a los paquetes obsoletos Grpc.Core y también eliminamos las referencias a Google.Protobuf y Grpc.Tools , ya que están incluidos en el paquete Grpc.AspNetCore .
Este enlace proporciona información adicional sobre la migración de grpc: https://docs.microsoft.com/en-us/aspnet/core/grpc/migration?view=aspnetcore-6.0