2

在我之前的项目中,我使用了一个类似于 ServiceStack 的框架(Agatha RRSL),因为一切都是由 Request、Response 和 Handler 组成的。它还具有可以附加到处理程序的拦截器,您也可以向处理程序注入其他接口。我可以使用它来打开事务 BeforeHandling、访问 AfterHandling 中的请求和响应、创建审计、保存到数据库并在需要时关闭事务。

我尝试用 SerivceStack 进行类似的实验。但是似乎使用过滤器,我不能同时获取请求和响应?

使用自定义 ServiceRunner。当我尝试调试 OnAfterExecute(...) 时,我可以在 IRequestContext {ServiceStack.ServiceHost.HttpRequestContext} 中看到我的请求 dto 的名称。但只是名称,我无法弄清楚如何检索实际的请求对象以使用响应对象。

我还没有弄清楚的另一件事是是否可以将自动有线服务接口注入其中,例如数据库上下文或审计服务。也许这个在管道中遥遥领先?

最后一件事是,我似乎只能注册一个自定义服务运行器?使用 Interceptor,我可以放下一堆,它们会互相缠绕。

有什么想法吗?谢谢

4

1 回答 1

3

RequestContext 还包含您可以访问的 HttpRequest 和 HttpResponse:

var httpReq = RequestContext.Get<IHttpRequest>();
var httpRes = RequestContext.Get<IHttpResponse>();

有关详细信息,请参阅有关访问 HTTP 特定功能的文档。

于 2013-10-10T02:23:33.877 回答