簡體   English   中英

篩選器操作后,ServiceStack原始請求DTO

[英]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.OriginalRequestIResponse.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM