RestSharp JSON不去除

时间:2014-07-07 04:36:46

标签: c# json wcf restsharp

我有一个RESTful WCF服务功能,但它没有通过RestSharp客户端正确序列化。

[ServiceContract]
public interface IRestDragon
{
    [OperationContract(Name = "getconfig")]
    [WebInvoke(Method = "GET", UriTemplate = "getconfig/{id}", BodyStyle = WebMessageBodyStyle.Wrapped,
        ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
    DragonConfig GetConfig(string id);
}

public class RestDragon : IRestDragon
{
    public DragonConfig GetConfig(string id)
    {
        var config = new DragonConfig {Name = "Test", Data = "DAtaaaaaa"};
        return config;
    }
}

以下是我使用该服务的方式:

static void Main(string[] args)
{
    Console.ReadLine();

    var client = new RestClient("http://localhost:5463/RESTDragon.svc");
    client.AddDefaultHeader("ContentType", "application/json");
    var request = new RestRequest("/getconfig/11123") {Method = Method.GET, RequestFormat = DataFormat.Json};
    var response = client.Execute<DragonConfig>(request);
    Console.WriteLine("Response: " + response.Content);
    Console.ReadLine();
}

然而它正在回归:

Response: {"getconfigResult":{"Data":"DAtaaaaaa","Name":"Test"}}

我无法通过response.Data。*访问反序列化数据。它返回null,数据显示在内容中,但是以JSON格式显示,带有奇怪的getconfigResult标识符。

2 个答案:

答案 0 :(得分:0)

您需要访问response.Data而不是response.Content来获取反序列化的对象。

答案 1 :(得分:0)

设置BodyStyle = WebMessageBodyStyle.Bare更正了问题。