Ai
1 Star 0 Fork 0

hardstylewyl/GRPC_Samples

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
ParamInterceptor.cs 1.01 KB
一键复制 编辑 原始数据 按行查看 历史
hardstylewyl 提交于 2025-01-06 22:53 +08:00 . update:更新为public.key作为签名key
using Grpc.Core;
using Grpc.Core.Interceptors;
public class ParamInterceptor : Interceptor
{
public override async Task<TResponse> UnaryServerHandler<TRequest, TResponse>(TRequest request, ServerCallContext context, UnaryServerMethod<TRequest, TResponse> continuation)
{
var (success, reason) = CheckParam(request);
if (!success)
{
throw new RpcException(new Status(StatusCode.InvalidArgument, reason!));
}
return await continuation(request, context);
}
(bool Success, string? Reason) CheckParam(object o)
{
foreach (var propertyInfo in o.GetType().GetProperties())
{
var v = propertyInfo.GetValue(o);
if (v is string str && string.IsNullOrWhiteSpace(str))
{
return (false, $"{propertyInfo.Name} is null");
}
if (v == null)
{
return (false, $"{propertyInfo.Name} is null");
}
}
return (true, null);
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/hardstylewyl/grpc_samples.git
git@gitee.com:hardstylewyl/grpc_samples.git
hardstylewyl
grpc_samples
GRPC_Samples
master

搜索帮助