参照:ASP .NET Core 6.0使用Grpc配置服务和调用服务_asp.net core grpc 服务-CSDN博客

demo:https://files.cnblogs.com/files/summerZoo/GrpcForWebApi.zip?t=1711003526&download=true

补充说明:

1、在添加完proto后要在项目文件里指定,并且GrpcServices指定为“Client”

 

<ItemGroup> <Protobuf Include="Protos\weatherforecast.proto" GrpcServices="Client" /> </ItemGroup>

2、并且对添加服务引用,类似wcf的方式:

 在这里选择grpc,选择刚刚复制的proto文件

 3、注意Google Protobuf的Timestamp类型与DateTime类型的转换

// 假设 yourDateTime 是你正在尝试转换的 DateTime 对象
if (yourDateTime.Kind != DateTimeKind.Utc)
{
    yourDateTime = yourDateTime.ToUniversalTime();
}

Timestamp timestamp = Timestamp.FromDateTime(yourDateTime);

  timestamp转换成DateTime

using Google.Protobuf;

// 创建一个 Timestamp 对象
var timestamp = new Timestamp
{
    Seconds = 1685052645,
    Nanos = 123456789
};

// 获取当前时间并转换为 Timestamp
var now = Timestamp.FromDateTimeOffset(DateTimeOffset.UtcNow);

// 将 Timestamp 转换回 DateTime
var dateTime = timestamp.ToDateTime();