servicestack,fluentvalidation,C#,servicestack,Fluentvalidation" /> servicestack,fluentvalidation,C#,servicestack,Fluentvalidation" />

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

C# 如何使用验证和可选的请求上下文直接从c代码调用servicestack服务,c#,servicestack,fluentvalidation,C#,servicestack,Fluentvalidation,我希望代码中的服务能够通过请求验证直接调用其他servicestack服务 在我看来,最好不要使用JsonServiceClient,因为服务运行在同一个进程中,所有的序列化和http请求等都需要使用JsonServiceClient 我知道我可以打电话: using (var service = base.ResolveService<MyService>()) { service.Post(new MyRequest()); } 但是,此方法不强制使用标准servi

我希望代码中的服务能够通过请求验证直接调用其他servicestack服务

在我看来,最好不要使用JsonServiceClient,因为服务运行在同一个进程中,所有的序列化和http请求等都需要使用JsonServiceClient

我知道我可以打电话:

using (var service = base.ResolveService<MyService>()) { 
    service.Post(new MyRequest()); 
}
但是,此方法不强制使用标准servicestack fluent验证类生成的请求验证代码

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

有人能告诉我如何做到这一点吗

谢谢。

您可以使用HostContext.ServiceController.executeMessageRequestdTo,httpReq;。这将通过完整的管道传递请求

更多详细信息请参见,以及我更详细的回答。

您可以使用HostContext.ServiceController.executeMessageRequestdTo,httpReq;。这将通过完整的管道传递请求


更多详细信息请参见,以及我更详细的回答。

是的,base.executerequestdto.Hi Scott的服务中也提供了这一信息,感谢您的及时回答。提供的方法不应用验证过滤器,引用问题中使用的方法效果很好:HostContext.ServiceController.ExecuteMessagenew MessagerequestDto,httpReq@理查兹:不管你说得对不对,我没有正确地阅读我之前的答案。我现在已经更新了这个。嗨@mythz。我认为你建议的方法实际上并不适用于验证。它需要调用HostContext.ServiceController.ExecuteMessagenew MessagerequestDto,httpReq;调用validation filter.Yep,这也可以在base.executeRequestDTO.Hi Scott的服务中找到,感谢您的及时回答。提供的方法不应用验证过滤器,引用问题中使用的方法效果很好:HostContext.ServiceController.ExecuteMessagenew MessagerequestDto,httpReq@理查兹:不管你说得对不对,我没有正确地阅读我之前的答案。我现在已经更新了这个。嗨@mythz。我认为你建议的方法实际上并不适用于验证。它需要调用HostContext.ServiceController.ExecuteMessagenew MessagerequestDto,httpReq;调用验证过滤器。