Как вызвать службу стека напрямую из кода C #, с проверкой и необязательным контекстом запроса

1

Я хочу, чтобы службы в моем коде могли напрямую обращаться к другим службам servicestack и с проверкой запроса.

На мой взгляд, было бы идеальным, чтобы не использовать JsonServiceClient со всеми параметрами сериализации и http и т.д., Поскольку служба работает в том же процессе.

Я знаю, что могу позвонить:

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

Однако этот подход не применяет мой код проверки запроса, который строится с использованием стандартных классов проверки надежности.

В идеале я мог бы дополнительно изменить контекст запроса, чтобы включить запуск с разными привилегиями и т.д.

Может ли кто-нибудь обратиться за советом, как это сделать.

Благодарю.

Теги:
servicestack
fluentvalidation

1 ответ

4
Лучший ответ

Вы можете использовать HostContext.ServiceController.ExecuteMessage(new Message<T>(requestDto), httpReq); , Это передаст запрос через весь трубопровод.

Более подробная информация приведена в этом вопросе, а также более подробный ответ.

  • 4
    Да, и это также доступно в Сервисе с base.ExecuteRequest(requestDto) .
  • 0
    Привет Скотт, спасибо за быстрый ответ. Предоставленный метод не применяет фильтры проверки, метод, используемый в упомянутом вопросе, прекрасно работает: HostContext.ServiceController.ExecuteMessage (new Message <T> (requestDto), httpReq);
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню