私はMediatRに新しいパイプライン機能を試してみたいです?は
は
答えて
this unit testのようなポストプロセッサに関連する動作を登録する必要があります。 behaviorは、あなたが登録されているすべてのポストプロセッサを取得し、それらを実行することを
services.AddMediatR();
services.AddTransient(typeof(IRequestPostProcessor<,>), typeof(PostHandler<,>));
services.AddTransient(typeof(IPipelineBehavior<,>), typeof(RequestPostProcessorBehavior<,>));
:
あなたの登録コードは次のようになります。
編集
ポストプロセッサは二回実行についてのコメントの後、私は、内蔵のDIコンテナASP.NETコアにMediatRを登録するコードを見ていた、そしてそれはのインスタンスが判明hereのように、IRequestPreProcessor<TRequest, TResponse>
とIRequestPostProcessor<TRequest, TResponse>
は自動的に登録されます。それらをパイプラインで実行させるために残されていることは、関連する動作を登録することだけです。したがって、必要な登録は次のとおりです。
services.AddMediatR();
services.AddTransient(typeof(IPipelineBehavior<,>), typeof(RequestPostProcessorBehavior<,>));
ありがとうございます。提案したように振る舞いを登録すると、Posthandlerは実行されますが、2回実行されます。どんなideですか? – Larsi
うん、私は私の答えを編集しました。プロセッサーを登録するのは奇妙だが、関連する動作は登録されていない。私はいつかGitHubで問題を開くかもしれません。 –
- 1. は後に私は、JSONは、私はエラー
- 2. は、私は私はsesiionはjQueryの - AJAX
- 3. 私はゲームエンジンは、私は
- 4. は「knownlanguagesは」キーは、クエリ
- 5. は、私は私のイメージは
- 6. は@Controllerはもはや@RequestMapping
- 7. はLaravelは5.4:カスタムミドルウェアは、ルート
- 8. NodeJSは、module.exports.Xはmodule.exportsは= {X}
- 9. は、私は(カレーは、(F))ML
- 10. はAttributeErrorは「リスト」オブジェクトは、Python
- 11. はCSS3 3Dは
- 12. インラインはiframeは
- 13. はluabindは、クラス
- 14. は、我々は
- 15. は、マルチスレッドはマルチプロセッシング
- 16. は、私はiPhone
- 17. はNHibernateは、コレクション
- 18. はMvxExpandableListAdapter SetItemsSourceは
- 19. は `cin.getlineは()`
- 20. は、私は
- 21. はPyQtは
- 22. は、Gitはファイル
- 23. jSoupはスパンクラスは
- 24. は、私は、Java
- 25. MyLinearLayout.getDrawingCacheは、()はNullPointerException
- 26. は、私はYAML
- 27. はNHibernateは
- 28. はWebPACKのは
- 29. はNSPredicateはSwift3
- 30. は(WDは、nodejs)
は実行されていないポストプロセッサのみですか?またはハンドラ?いくつかのコードを表示することができれば助けになります。 –
その他の標準ハンドラが実行されます。 – Larsi