如何通过验证和可选的请求上下文直接从 C# 代码调用 servicestack 服务

How to call a servicestack service directly from c# code, with validation and optional request context

我希望我的代码中的服务能够直接调用其他 servicestack 服务并进行请求验证。

在我看来,最好不要使用 JsonServiceClient,所有序列化和 http 请求等都在同一进程中 运行。

我知道我可以打电话:

using (var service = base.ResolveService<MyService>()) { 
    service.Post(new MyRequest()); 
}

但是,这种方法不会强制执行使用标准服务堆栈流畅验证构建的请求验证代码 类。

理想情况下,我也可以选择更改请求上下文,以启用 运行 不同的权限等。

有人可以建议如何实现这一点。

谢谢。

您可以使用 HostContext.ServiceController.ExecuteMessage(new Message<T>(requestDto), httpReq);。这将通过完整的管道传递请求。

this question 中提供了更多详细信息以及我更详细的回答。