Ты прав. Если вы попытаетесь использовать AppHostBase.ResolveService<T>
, он не выполнит ни один из зарегистрированных фильтров запросов. По сути, он разрешает только службу из контейнера зависимостей AppHost, вы возвращаете только экземпляр службы. Таким образом, ваши валидаторы не срабатывают.
Сервисный стек v4:
Как указывает @mythz, вы можете использовать API точки входа MQ HostContext
для выполнения вызова с фильтрами запросов MQ и, таким образом, для запуска проверки. Сделать это:
HostContext.ServiceController.ExecuteMessage(new Message<T>(requestDto), httpReq);
@mythz также отмечает, что вы можете выполнить службу, используя только DTO, вместо того, чтобы определять службу и метод обработки для вызова, но аналогично AppHostBase.ResolveService<T>
он не запускает фильтры запросов. Использование:
HostContext.ServiceController.Execute(requestDto, httpReq)
Сервисный стек v3:
GetAppHost().Config.ServiceManager.ServiceController.ExecuteMessage(new Message<T>(requestDto), httpReq);
person
Scott
schedule
23.01.2014
protected IServiceController ServiceController
наAppHostBase
... не могу понять, как получить к этому доступ с контроллера MVC. - person Jeremy Smith   schedule 27.01.2014HostContext.ServiceController
, расширение или что-то другое .ServiceStack.Common.HostContext
- person Jeremy Smith   schedule 29.01.2014