を介して参照サービスをインスタンス化するときに、リクエスト フィルター検証 (例: FluentValidation ) がトリガーされることを期待する必要がありますか?AppHostBase.ResolveService<>
これまでのところ、型指定されたクライアント(この場合は具体的にはJsonServiceClient )を使用した場合に、C# アプリケーションに対して適切なエラー応答を受け取ることができただけです。
を介して参照サービスをインスタンス化するときに、リクエスト フィルター検証 (例: FluentValidation ) がトリガーされることを期待する必要がありますか?AppHostBase.ResolveService<>
これまでのところ、型指定されたクライアント(この場合は具体的にはJsonServiceClient )を使用した場合に、C# アプリケーションに対して適切なエラー応答を受け取ることができただけです。
あなたが正しいです。使用しようとするAppHostBase.ResolveService<T>
と、登録されているリクエスト フィルタは実行されません。基本的に、AppHost 依存コンテナーから Service のみを解決し、Service インスタンスのみを取得します。したがって、バリデーターはトリガーされません。
@mythz が指摘しているように、の MQ エントリ ポイント API を使用しHostContext
て、MQ 要求フィルタを使用して呼び出しを実行し、検証を実行できます。これをする:
HostContext.ServiceController.ExecuteMessage(new Message<T>(requestDto), httpReq);
@mythz はまた、呼び出すサービスと処理メソッドを決定する必要はなく、DTO だけを使用してサービスを実行できることにも言及していますが、同様の方法で要求フィルターをトリガーAppHostBase.ResolveService<T>
しません。使用法:
HostContext.ServiceController.Execute(requestDto, httpReq)
GetAppHost().Config.ServiceManager.ServiceController.ExecuteMessage(new Message<T>(requestDto), httpReq);