問題タブ [eventaggregator]
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.
extjs - ExtJSのイベントアグリゲーター
ExtJ用の信頼できるイベントアグリゲーターの実装を知っていますか?
c# - Prism と Event Aggregator を使用したページ サイズ変更イベントの処理
Page_SizeChanged イベントが WPF ブラウザー アプリケーションで発生したときにキャプチャし、Prism EventAggregator を介してイベントを公開する必要があります。私が興味を持っているページはたまたまシェル ページであるため、イベントアグリゲーターにアクセスできる ViewModel が添付されていません。
unit-testing - 単体テストに Moq を使用した Prism Event Aggregator のモック
テスト対象のクラスが希望どおりに動作していることを確認するために、単体テストで Moq を使用する方法についてアドバイスが必要です。これは、テスト対象のクラスが (Prism からの) イベント アグリゲーター イベントを発行することであり、このイベントがテストで発生したことをアサートする何らかの方法が必要です。
私は仕事に多くのリソースを持っておらず、これを設定する方法を知るのが難しいと感じています.
私は持っている :-
私のテストが SomeClass の場合、 SomeClass.Allocate を呼び出すと SomeEvent メッセージが公開されていることを確認する必要があると思います。これはどのように行われますか?
モックされた SomeService が SomeEvent を受け取っていることも確認する必要がありますか? それとも、SomeClass ではなく SomeService 単体テストに属する別の単体テストですか?
いずれにせよ、これを設定する方法がわからないので、アドバイスをいただければ幸いです。
.net - イベント集約パターンについて説明しているデザイン パターンの本やビデオを知っていますか?
独自の Event Aggregation クラスを作成しようとしていて、いくつかの記事に行きますが、このパターンを段階的に進めたいと考えています。たとえば、User クラスと Email 通知クラスなどの 2 つの単純なクラスで作成したいので、ユーザーは、彼に送信された電子メールでパスワードを変更します。
今はジェネリックを気にしたくありません。できるだけシンプルにしたいのです。
このパターンについて話している本やビデオはまったく見つかりませんでしたが、以前に会ったことがありますか?
c# - イベントアグリゲーターのパターンを理解しようとしています
イベントアグリゲーターパターンを簡単な方法で実装して、段階的に学習しようとしています。しかし、その実装について説明している本や素晴らしいビデオチュートリアルは見つかりませんでした。このhttp://weblogs.asp.net/rashid/archive/2009/03/05/use-event-aggregator-to-make-your-application-more-extensible.aspxやhttp
などの良い記事を見つけました。 ://martinfowler.com/eaaDev/EventAggregator.html最初の記事は大きすぎてパターンを理解できず、2番目の記事は完成していません:)。
ちなみに私はクラスを作成しました:
CommentSubmited()
そして、私が欲しいのは、新しいコメントがいつでもFireのメソッドを作成できるように、一般的な方法を作成することです。
後でRateService、QuestionServiceなどのサービスが増え、それぞれがXXXSubmited()
MemberServiceクラスのメソッドを持つため、汎用的にしたいと思います。
私が学びたいことを理解していただければ幸いです。もっと明確にしてほしいかどうか聞いてください。
Generic Delegatesトピックを確認し、この問題で役立つかもしれないと思ったが、思ったとおりに作成できなかったことに注意してください。
c# - このサンプルではISubjectとSubjectはどのように見えますか?サンプルはそれらを適切な場所で使用していますか?
このサンプルを入手しましたhttp://jfromaniello.blogspot.com/2010/04/event-aggregator-with-reactive.html、
.net 4.0を使用したイベントアグリゲーターパターンを説明していますが、サンプルコードでISubjectインターフェイスとSubjectクラスが見つかりませんでした。また、彼がEventAggregatorクラスでそれらを使用していることがわかりました。そのように使用するのは正しいのでしょうか?彼らのコードは次のようになりますか?
silverlight - 大規模な Prism/Silverlight アプリケーション - 単一のデータ サービスと通信する複数のモジュール
Prism を使用して、大規模なデータ駆動型の Silverlight アプリケーションとなるフレームワークを開発しています。アプリケーションのさまざまな部分に対して複数のモジュールを作成していますが、すべてのモジュールが同じ REST Web サービスからデータにアクセスする必要があります。そのため、私の最初の計画は、データ取得用に別のモジュールを作成し、EventAggregator を使用して、結果イベントをサブスクライブする他のモジュールに結果を渡すことでした。ビューがないため、データ モジュールにはビューモデルがありません。
いくつか質問があります。2. ViewModel がない場合、データ モジュールのどこでイベントを発行できますか?
ヒントやアドバイスは大歓迎です。
c# - IEventAggregator が複数のモジュールにまたがらない
IEventAggregator を取得して、あるモジュールで公開してイベントを実行し、別のモジュールでキャッチできるようにしようとしています。以下のコードを単一のモジュール/プロジェクトで試してみましたが、うまく機能します。1 つのモジュール/プロジェクトでイベントを発行し、別のモジュール/プロジェクトでそれをサブスクライブした場合にのみ失敗します。
Unity を介して IEventAggregator を両方のモジュールに注入しました。
私には 3 つのプロジェクトがあり、そのうちの 2 つにはモジュール (A と B と呼びます) があり、1 つは単なるクラス ライブラリ (インターフェイスと呼びます) です。
クラス ライブラリInterfacesには、次のコードがあります。
モジュールAには、ボタン クリック コマンドに次のコードがあります (これは実際にはプロジェクトのビュー モデルにあります)。
モジュールBには次のコードがあります。
トレースすると、Subscribe が呼び出されることがわかります。パブリッシュが呼び出されているのを見ると、デバッガーは言いますSubscriptions = 1
(サブスクリプションが作成されたことを認識しているため、IEventAggregator の 2 つの異なるインスタンスがないようです)。
ただし、発行後に OnRandomThingDone が呼び出されることはありません。
理由はありますか?(さらにコードを投稿する必要がありますか? その場合はお知らせください。)
wpf - WPFPRISMイベントサブスクリプションが終了していません
私はPRISMRegionManagerを持っており、いくつかの領域(上部にリボン領域、その下にビューのメインコンテンツ領域)があり、かなり基本的です。
アプリは、メインコンテンツ領域の「ホーム」ビューから始まります。リボンのボタンをクリックすると、コンテンツ領域に2番目のビューが挿入され、リージョンマネージャーでそのビューに移動します。このビューのボタンをクリックすると、ボタンが削除され、元のビューが表示されます。
現在、RegionManager.Add()メソッドを使用してこれを実行し、2番目のビューを手動で追加しています。削除する場合は、現在アクティブな削除を取得するマネージャークラスによって消費されるイベントを公開し、リージョンマネージャーでRemove()を呼び出してから、元のビューに戻ります。
これはすべてうまく機能しますが、Remove()を呼び出した後に2番目のビューが有効なままであり、その存続期間中に作成されたサブスクリプションを処理し続ける場合を除きます。弱いイベント参照に対してfalseを指定してSubscribeを明示的に呼び出しようとしましたが、これはとにかくデフォルトであり、役に立ちませんでした。ビューの作成(検出と挿入)と、削除と非アクティブ化によるビューの削除の両方のタイプを試しました。それらのどれも助けませんでした。これは本当の問題です。将来同じビュー(そのビューの新しいインスタンス)を作成したい場合、それらのインスタンスのいくつかは同じイベントにサブスクライブしていても、それらのインスタンスがいくつか残っています。何年も前にRegionManagerから削除されました。
ビューでサブスクライブしているすべてのイベントから手動でサブスクライブを解除する必要がありますか(非常に望ましくありません)?または、サブスクリプションが削除されるように、コントロールを破棄する/非アクティブとしてマークする方法はありますか?
ここで何か馬鹿げたことをしているような気がしますが、完全に困惑しています。
ありがとう