問題タブ [mediatr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
518 参照

c# - MediatR は、別のハンドラーでのトランザクション保存のために TableBatchOperation を共有します

トランザクション動作を行うために、複数の Handler 間で TableBatchOperation Azure テーブル ストレージを共有する方法を検索します。

CQRS シナリオでは、Azure Table Storage で複数の挿入を行いますが、MediatR のようなバス メモリでは、この挿入が別のハンドラーにある場合、一方が失敗しても他方が失敗しない場合は困難です。

publish() 呼び出しメソッドの前後で TableBatchOperation を共有すればOKだと思います。

これを行うための推奨事項はありますか?

0 投票する
0 に答える
628 参照

autofac - MediatR と Autofac ContravariantRegistrationSource による複数の通知

MediatR を使用して一般的な通知を設定しようとしていますが、通知ハンドラーが複数回呼び出されています。

https://github.com/smartaypants/MediatR/blob/master/test/MediatR.Tests/CustomNotificationTests.cs

テストは、ICustomNotification を実装する CustomNotification を発行します。CustomNotificationHandler は、ICustomNotification を実装する必要がある TNotification を受け入れるように制限されています。

これは 1 回だけ呼び出されると予想されますが、ハンドラーは 3 回呼び出されます (TNotification は CustomNotification、CustomNotificationBase、および ICustomNotification です)。しかし、それらはすべて同じインスタンスです。

Autofac 登録から ContravariantRegistrationSource 行を削除すると、期待どおりに動作します。同様に、StructureMap 登録を使用すると、正常に動作します。

反変性を有効にする必要がある理由が完全にはわかりません。MediatR wiki に含まれており、私が見つけることができるほとんどすべての例があるため、私はこの行のみを使用しています。

なぜこれが起こっているのか、私が何か間違ったことをしているのか、それともAutofacのバグなのかを誰かが説明してください. ありがとう。

0 投票する
1 に答える
5168 参照

c# - MediatR を使用する場合、1 つのハンドラーが別のハンドラーを呼び出しても問題ありませんか?

それとも、それは悪い習慣か何かと見なされますか?

1 つの通知で 4 ~ 5 個のハンドラーがトリガーされ、データベースが呼び出されてデータが取得されます。これらの各呼び出しは個別に呼び出すこともできるため、それら自体が要求/ハンドラーです。

ありがとう。