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 });
上一篇:c#-是否有F#语言提供的ServiceStack API


下一篇:Kubernetes Ingress API 对象