代码拉取完成,页面将自动刷新
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);
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。