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