如何将响应转换为对象c#

时间:2015-11-11 14:57:58

标签: c# rest

我已经构建了一个简单的.net客户端,可以调用简单的休息Web服务。这有效。网络服务,回复我的回复:

    <Reply>
       <errorCode>OK</errorCode>
       <errorDescription>d13f2197-ed6e-4997-a06d-4166ca52aa75</errorDescription>
       <ccdContent></ccdContent>
    </Reply>

现在我想要检索此响应如何对象。所以我创建了这个类:

class Response
{
     [DataMember(Name = "errorCode")]
    String errorCode { set; get; }
    [DataMember(Name = "errorDescription")]
    String errorDescription{ set; get; }
}

这是调用Web服务的方法:

public void writeSectionIntoCCD(String appID, String shardSecret, String userID, String password, String templateID)
{
    String currentTime = DateTime.Now.ToString("yyyyMMdd");
    String URL = "https://dokumentti.it/";
    var client = new RestClient(URL);
    string hash = CalculateMD5Hash(currentTime + shardSecret + password);
    RestRequest request = new RestRequest("resource/ccd/problems/" + userID + "/" + appID + "/" + currentTime + "/" 
    + hash + "?starttime=20140615&code=275498002&name=Respiratorytractinfection&system=2.16.840.1.113883.6.96&systemname=SNOMED&statuscode=55561003&statusname=Active&statussystem=2.16.840.1.113883.6.96&statussystemname=SNOMED", Method.POST);
    IRestResponse<Response> response = client.Execute<Response>(request);

}

但该对象为空。

2 个答案:

答案 0 :(得分:0)

我不确定,但你不应该这样做:

RestResponse<Response> response = client.Execute<Response>(request);
var errorCode = response.Data.errorCode;

答案 1 :(得分:0)

我找到了解决方案,问题是两个:

我已将此插入我的班级名称

[DataContract(Name = "Reply")]

然后我在我的课上插入公共属性。所以现在我有了这个:

[DataContract(Name = "Reply")]
public class Response
{
     [DataMember(Name = "errorCode")]
    public String errorCode { set; get; }
    [DataMember(Name = "errorDescription")]
    public String errorDescription{ set; get; }
}