参照: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();