ServiceStack JsonServiceClient:SendAsync 使用了错误的路径,忽略了 Route 属性?

ServiceStack JsonServiceClient: SendAsync uses wrong path, ignores Route attribute?

我在 Xamarin 应用程序中使用 JsonServiceClient,如下所示:

JsonServiceClient client = new JsonServiceClient("https://my.domain.com/");
SetHeaders(client);

var request = ...; // this is IRequest<T>
var result = await client.SendAsync(request); // <-- FAILS, can't find service

我的后端returns一个回答,说那个端点没有服务,这是真的,实际上通过线路发送的路径是不正确的。

request定义在一个lib中,像这样:

[Route("/mybasepath/endpoint", "POST")]
public class Login : IReturn<LoginResponse>
{
}

问题是调用时使用的路径错误,不遵循Route属性:

https://my.domain.com/json/reply/Login

在这里,ServiceStack 客户端使用默认的 /json/reply 路径,即使我在 DTO 中定义了 Route 属性。

如果我更改在 client 实例上使用的方法,而不是使用 PostAsync,路径是十个正确的并且调用按预期工作:

JsonServiceClient client = new JsonServiceClient("https://my.domain.com/");
SetHeaders(client);

var request = ...; // this is IRequest<T>
var result = await client.PostAsync(request); // <-- WORKS!

我现在没有可以立即测试的最小项目,也许是我错过的简单项目?

(在 VS 2019 16.9 上使用 ServiceStack.Client v 5.10.4)

如果您想使用 ServiceStack 的通用 Send* API,服务客户端需要通过使用从其基础 类.

否则 Send* API 旨在回退以使用 ServiceStack 的 pre-defined Routes