diff --git a/NewLife.Remoting.Extensions/ApiFilterAttribute.cs b/NewLife.Remoting.Extensions/ApiFilterAttribute.cs
index 835e37d..672d073 100644
--- a/NewLife.Remoting.Extensions/ApiFilterAttribute.cs
+++ b/NewLife.Remoting.Extensions/ApiFilterAttribute.cs
@@ -49,32 +49,36 @@ public sealed class ApiFilterAttribute : ActionFilterAttribute
if (context.HttpContext.WebSockets.IsWebSocketRequest) return;
if (context.Result != null)
+ {
if (context.Result is ObjectResult obj)
+ {
context.Result = new JsonResult(new { code = obj.StatusCode ?? 0, data = obj.Value });
+ }
else if (context.Result is EmptyResult)
{
DefaultTracer.Instance?.NewSpan("apiFilter-EmptyResult");
context.Result = new JsonResult(new { code = 0, data = new { } });
}
- else if (context.Exception != null && !context.ExceptionHandled)
+ }
+ else if (context.Exception != null && !context.ExceptionHandled)
+ {
+ var ex = context.Exception.GetTrue();
+ if (ex is ApiException aex)
+ context.Result = new JsonResult(new { code = aex.Code, message = aex.Message });
+ else
{
- var ex = context.Exception.GetTrue();
- if (ex is ApiException aex)
- context.Result = new JsonResult(new { code = aex.Code, message = aex.Message });
- else
- {
- context.Result = new JsonResult(new { code = 500, message = ex.Message });
+ context.Result = new JsonResult(new { code = 500, message = ex.Message });
- // 埋点拦截业务异常
- var action = context.HttpContext.Request.Path + "";
- if (context.ActionDescriptor is ControllerActionDescriptor act) action = $"/{act.ControllerName}/{act.ActionName}";
+ // 埋点拦截业务异常
+ var action = context.HttpContext.Request.Path + "";
+ if (context.ActionDescriptor is ControllerActionDescriptor act) action = $"/{act.ControllerName}/{act.ActionName}";
- DefaultTracer.Instance?.NewError(action, ex);
- }
-
- context.ExceptionHandled = true;
+ DefaultTracer.Instance?.NewError(action, ex);
}
+ context.ExceptionHandled = true;
+ }
+
base.OnActionExecuted(context);
}
}
\ No newline at end of file