1

を介して参照サービスをインスタンス化するときに、リクエスト フィルター検証 (例: FluentValidation ) がトリガーされることを期待する必要がありますか?AppHostBase.ResolveService<>

これまでのところ、型指定されたクライアント(この場合は具体的にはJsonServiceClient )を使用した場合に、C# アプリケーションに対して適切なエラー応答を受け取ることができただけです。

4

1 に答える 1

1

あなたが正しいです。使用しようとするAppHostBase.ResolveService<T>と、登録されているリクエスト フィルタは実行されません。基本的に、AppHost 依存コンテナーから Service のみを解決し、Service インスタンスのみを取得します。したがって、バリデーターはトリガーされません。

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);
于 2014-01-23T22:44:38.967 に答える