[英]ServiceStack original Request DTO after Filter manipulation
美好的一天,有没有办法在响应筛选器中获取原始请求DTO。 在请求过滤器中,我操纵DTO的值。
appHost.GlobalRequestFilters.Add((req, res, reqDto) =>
{
if (reqDto is Granite.Webservice.Resources.MasterItemRequest)
{
string code = ((Granite.Webservice.Resources.MasterItemRequest)reqDto).Code;
((Granite.Webservice.Resources.MasterItemRequest)req.Dto).Code = code.Replace("^", "");
}
});
在上面的代码中,您可以看到我将代码更改为排除^字符。 请注意,这只是一个示例,而不是实际的实现,因此请不要问为什么出现^。
然后在响应中,我想获取请求的原始值和属性Code。
我的回应筛选器:
appHost.GlobalResponseFilters.Add((req, res, reqDto) =>
{
var t = req.OriginalRequest;
});
如果我查看req OriginalRequest的请求,它没有DTO。 该请求还反映了新值。
IRequest.OriginalRequest
和IResponse.OriginalResponse
使您可以获取基础ASP.NET HttpRequestBase或HttpListenerRequest对象。
相反,您可以从IRequest.Dto
属性获取它,例如:
appHost.GlobalResponseFilters.Add((req, res, resDto) => {
var dto = req.Dto;
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.