是RequestFilter验证客户端依赖?(Is RequestFilter Validation

2019-10-19 06:26发布

应该期待请求过滤验证(例如FluentValidation )被触发时, 实例的引用服务通过AppHostBase.ResolveService<>

迄今为止,使用的时候,我只成功接收到正确的错误反应,我的C#应用程序类型的客户端 ( JsonServiceClient在这种情况下,特别是)。

Answer 1:

你是对的。 如果您尝试使用AppHostBase.ResolveService<T>它不执行任何注册请求过滤器。 本质上,它只是解决了从APPHOST扶养容器中的服务,你回来只是服务实例。 因此,你的校验不会被触发。

ServiceStack V4:

作为@mythz指出可以使用的MQ切入点API HostContext与MQ请求,过滤器,以执行呼叫,因此具有运行验证。 去做这个:

HostContext.ServiceController.ExecuteMessage(new Message<T>(requestDto), httpReq);

@mythz还注意到则可以仅使用一个DTO,而不必确定服务和处理方法调用执行一个服务,但以类似的方式,以AppHostBase.ResolveService<T>触发请求过滤器。 用法:

HostContext.ServiceController.Execute(requestDto, httpReq)

ServiceStack V3:

GetAppHost().Config.ServiceManager.ServiceController.ExecuteMessage(new Message<T>(requestDto), httpReq);


文章来源: Is RequestFilter Validation client dependent?