我编写了一个ExceptionInterceptor
将操作调用包装在try
/catch
中以进行集中异常处理的方法。我还想做的是集中处理 HTTP 状态代码,但我似乎无法从我的IOperationInterceptor
. 我的 Interceptor 将ICommunicationContext
其作为依赖项并将其设置OperationResult
为 eg OperationResult.BadRequest
,但 OpenRasta 仍将以下内容写入日志:
Step into: Stepping over non-user code 'OpenRasta.Pipeline.PipelineRunner.RunCallGraph'
38-[2011-07-08 09:11:37Z] Start(1) Entering PipelineRunner: Executing contributor OperationResultInvokerContributor.RunOperationResult
38-[2011-07-08 09:11:37Z] Information(0) Executing OperationResult OperationResult: type=OK, statusCode=200.
我也尝试过IResponse.StatusCode
明确设置,但没有效果。似乎因为我想要响应的 ResponseResource 是注册的有效资源ResourceSpace
(尽管没有 URI),所以状态代码被忽略,并且常规渲染管道向前推进认为“这看起来不错”。
为什么 OpenRasta 会忽略我的 StatusCode?