我希望我的代码中的服务能够直接调用其他服务栈服务并进行请求验证。
在我看来,最好不要使用JsonServiceClient,所有序列化和http请求等,因为服务在同一个进程中运行。
我知道我可以致电:
using (var service = base.ResolveService<MyService>()) {
service.Post(new MyRequest());
}
但是,这种方法不会强制执行使用标准servicestack流畅验证类构建的请求验证代码。
理想情况下,我也可以选择更改请求上下文,以启用不同权限的运行等。
有人可以建议如何实现这一点。
感谢。
答案 0 :(得分:4)
您可以使用HostContext.ServiceController.ExecuteMessage(new Message<T>(requestDto), httpReq);
。这将通过完整的管道传递请求。
this question中提供了更多详细信息,以及更详细的答案。