编程语言
首页 > 编程语言> > c#-JsonServiceClient返回具有正确属性但值为空的响应

c#-JsonServiceClient返回具有正确属性但值为空的响应

作者:互联网

我正在尝试在外部服务上发出JSON请求,如下所示:

GET请求:

https://remotehost/path/mycount?foo=C&bar=21

回应:

{"count":1000}

为此,我使用ServiceStack JsonServiceClient,这是下面的代码

var client = new JsonServiceClient(classifiedSearchBaseURL);
var response = client.Get<CountResponse>(new MyRequest {
    foo = "C",
    bar = 21
});

class MyRequest
{    
    public string foo { get; set; }
    public int bar { get; set; }
}

class CountResponse
{
    public string count;
}

问题是,即使服务器用正确的值/响应(使用Fiddler)回答了200,我也得到了一个响应对象,其属性“ count”为空.

我尝试将计数类型从字符串更改为整数,但随后得到0而不是null.

你们有个主意吗?

谢谢你的帮助!

解决方法:

默认情况下,ServiceStack仅序列化公共属性,因此您需要将Response DTO更改为:

class CountResponse
{
    public string count { get; set; }
}

我还建议添加IReturn< T>标记界面,例如:

class MyRequest : IReturn<CountResponse>
{    
    public string foo { get; set; }
    public int bar { get; set; }
}

因此,客户端可以自动推断出响应类型,因此您的呼叫站点可以减少为:

var response = client.Get(new MyRequest { foo = "C", bar = 21 });

标签:servicestack,json,c
来源: https://codeday.me/bug/20191110/2014152.html