【问题标题】:How to make RestSharp return my custom RestResponse如何让 RestSharp 返回我的自定义 RestResponse
【发布时间】:2018-10-17 18:24:50
【问题描述】:

RestSharp 项目中的标准RestClient 有一个Execute() 方法,如下所示:

public virtual RestSharp.IRestResponse Execute(RestSharp.IRestRequest request)

只要我的请求实现了正确的接口,我就可以创建一个自定义请求类并将其提供给该方法。

public class MyRestRequest : IRestRequest
{
}

现在假设我想将MyRestRequest 类型的请求映射到MyRestResponse 类型的响应:

public class MyRestRequest : IRestResponse
{
}

我将如何告诉客户端创建我的响应类的实例而不是默认的RestResponse?我可以在不覆盖Execute() 过程的情况下执行此操作吗?

编辑

澄清一下:RestClient.Execute() 被硬编码为总是返回RestResponse 的实例。

来源(第 64 行):https://github.com/restsharp/RestSharp/blob/master/RestSharp/RestClient.Sync.cs

我已经在他们的Google Groups 板上发布了这个问题,但这个项目对我来说似乎已经死了。

【问题讨论】:

    标签: c# restsharp


    【解决方案1】:

    您应该能够将 IRestReponse 转换为 MyRestRequest,例如:

    MyRestResponse response = (MyRestResponse)client.Execute(request);
    

    【讨论】:

    • 这似乎不对...铸造要求RestResponseMyRestResponse 的后代,而实际上恰恰相反。有人试过吗?
    • 如果我没记错的话,您也不能在同一继承树中的类型之间实现自定义转换支持。 :-/
    猜你喜欢
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多