使用泛型来解决REST场景

时间:2013-12-19 07:05:47

标签: c# .net rest generics restsharp

行。我正在与基于REST的API进行通信,该API返回XML格式的响应。我正在使用RESTSharp让生活更轻松。如果我调用RestClient.Execute<T>()重载,RESTSharp有一个从返回的XML创建/填充.NET对象的便利功能。我的API的所有调用都具有以下形式:

REQUEST:

<GetContactsRequest>                               <--

响应:

<GetContactsResponse>                              <--
    <Result>Success</Result>
    <Contacts>...</Contacts>                       <--
</GetContactsResponse>                             <--

我突出显示的节点将根据请求进行更改。这似乎为RESTSharp带来了问题,它使用节点名来查找相应的类/属性。早些时候,当我在处理所有响应中始终返回相同根级别节点的另一个API时,我能够创建这样的泛型类:

class Response<T>
{
    public string Result { get; set; }
    public T Data{get; set;}
}

然后我可以将其用于所有API请求。由于根节点名称不是Response,因此此类不会在此新API中填充。我是否需要为每个请求/响应创建一个类,或者是否有更好的解决方案?

0 个答案:

没有答案