問題タブ [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.
c# - Cal、EventAggregator、および Application.Deactivated に関する問題
CAL とイベント アグリゲーターで興味深い問題が発生しています。アプリが非アクティブ化またはアクティブ化されたときにイベントを発行しようとしています (application.activated および application.deactivated)。一部のモジュールには、アプリケーションがフォーカスを失ったときに非表示にしたいポップアップ ボックスがあります。
これは以下の小さなコードサンプルです
app.xaml.cs
Module.cs
プレゼンター
何が起こるかというと、アプリがフォーカスを失うと、コンソールに次のように表示されます Deactivated - app.xaml アプリがフォーカスを取り戻すと、以下の App Deactivated - Module
アプリがフォーカスを取り戻してイベントが発生するまで、イベント アグリゲーターが待機する理由についてのアイデア。
ありがとう
wpf - Caliburn.Micro。Autofacを使用してIHandle実装者のeventaggregator.Subscribe()を自動的に呼び出す
Caliburn.Microのドキュメントでは、著者はそのような可能性について言及しています。
IHandleは、マーカーインターフェイスIHandleから継承します。これにより、キャストを使用して、オブジェクトインスタンスがイベントにサブスクライブしているかどうかを判断できます。これにより、IoCコンテナと統合する場合に、簡単な自動サブスクライブが可能になります。ほとんどのIoCコンテナ(SimpleContainerを含む)は、新しいインスタンスが作成されたときに呼び出されるためのフックを提供します。コンテナのコールバックに接続し、作成中のインスタンスを調べてIHandleが実装されているかどうかを確認し、実装されている場合は、イベントアグリゲータでSubscribeを呼び出します。
Autofacでこれをどのように達成することができますか?
デコレータの機能を利用してみましたが、もちろんこの場合はちょっと不適切です。さらに、デフォルトでは、IHandle<>の実装者はコンテナ内のIHandleのインスタンスとして登録されていません。
PS何か役に立つかもしれない場合に備えて、この不適切な実装を提供することは疑わしいですが。
unity-container - Prism からのみ UnityEventAggregator を使用する
Unity イベント アグリゲーターを使用して、アプリケーションのさまざまな部分間のメッセージングを行おうとしています。現在、これは私が使用したい Prism フレームワークの唯一の機能です。私が考える基本的な概念を理解するのに苦労しています。
私の目標は、ある場所で特定のイベントを放送し、そのイベントを別の場所で取り上げることです。私が見つけたコードには、Unity Container へのアクセスが必要です。これには、ブートストラップでの構成が必要であり、ブートストラップでウィンドウをインスタンス化する必要があることがわかります。これは、イベントアグリゲーターを使用したいだけの私の状況では、ジャンプするのに多くの余分なフープのように思えます.
イベントアグリゲータを使用し、Prism から他に何も使用しない最小限のコードについて、誰かが私を正しい方向に向けることができますか?
c# - メッセージパブリッシングベースのプログラミング?
それ以来、コード内のほとんどのイベント(WPFコントロールプロパティをコードに接続するイベントを除く)に管理したイベントを使用する代わりに、イベントアグリゲーターを使用してメッセージを公開する方法を学びました。現在の問題は、ハンドラーでサービスを実際に過負荷にしているように見えることです。GitHubの周りをクルージングすると、人々がイベントアグリゲーター(バスなどの別の名前をとるように見える)を実装し、各タイプのメッセージを処理するクラスを作成するのを見ることができます。
例えば:
このタイプのプログラミングに使用される用語は何ですか?それについてもっと知りたいのですが。
wpf - プリズム イベントアグリゲーター サブスクライブを呼び出しているユーザーを特定する方法は? または複数のサブスクライブ呼び出し
あるビュー モデルに、別のビュー モデルのパブリッシュ イベントをリッスンする subscribe メソッドがあります。なんらかの理由で、publish メソッドが起動されると、subscribe メソッドが複数回 (私の場合は毎回 4 回) 実行されます。パブリッシュごとにブレークポイントがあり、最初のパブリッシュ呼び出し以外は、どれも起動していません。
サブスクライブの複数の呼び出しが発生しても、呼び出しスタックは変更されません。
複数の呼び出しがサブスクライブする原因を特定するにはどうすればよいですか?
更新:私が見つけたとき、これは「doh」の答えであることが判明しました。問題のビューモデルは、テーブル/グリッドの行のビューモデルのコレクションであり、当然、グリッドに追加される行が増えるほど、イベント アグリゲーターに追加されるサブスクライブが増えます。不要なものを取り除くために、いくつかの購読解除ロジックを実装する必要がありました。
wpf - Prism で ViewModel を破棄するときに EventAggregator の unsubscribe メソッドが呼び出されることを確認する方法
EventAggregator のメッセージが閉じられたときに、そのメッセージから正しく購読を解除していることを確認するテストを書くのに苦労しています。(簡単な)答えを指摘できる人はいますか?!
コードは次のとおりです。
テストは次のエラーで失敗します。
Moq.MockVerificationException : 次の設定が一致しませんでした: IssuerSelectedEvent x => x.Unsubscribe(It.IsAny())
テストは次のとおりです。
silverlight - PrismEventAggregatorとMVVMLightMessengerの概要
MVVMLightMessengerサービスと比較したPrismEventAggregatorの概要を教えてください。具体的には;
- それらは類似したものですか、それともまったく異なる目的のためのものですか?
- 両方の長所と短所
- 使用すべき場所と使用すべきでない場所
- MEFまたはUnityと組み合わせて使用する場合など、モジュラー開発で使用します
- 関連すると思われるその他の情報
これは私があまり取り上げていないことであり、同じプロジェクトで両方を使用していることに気づきました。私の腸の感覚では、どちらか一方を使用する必要があります。
prism - 分散アプリケーション用のイベントアグリゲーター
Prismを使用してアプリケーションを実装しています。アプリケーションには、さまざまなマシンまたはサーバーに常駐するいくつかの分散コンポーネントがあります。それらを伝達するために、EventAggregatorを使用してメッセージングサービスを実装することを計画しています。しかし、それに取り組む前に、いくつかの説明が必要です。
EventAggregatorを分散環境で使用できますか。はいの場合、メッセージが公開またはサブスクライブされるサーバーまたはハブを定義する方法は?
Event Aggregatorを使用するアプリケーションのパフォーマンスへの影響は何ですか?無視できると思いますが、それでも知りたいです。
イベントアグリゲーターのアプローチは、エンタープライズ環境での将来の拡張に適していますか?
よろしくお願いいたします。
アシシュシャルマ
wpf - WPFPRISM4を使用した適切なアプリケーションのシャットダウン
MEFとPRISM4を使用するWPFアプリケーションをクリーンにシャットダウンするための「ベストプラクティス」(ベストプラクティスがある場合)を探しています。最終的には、シェルからアプリケーションを閉じても問題がないことを確認したいビューモデル(または他のサブスクライバー)までのすべてのイベント/コマンドを管理する、ある種の「サービスを閉じる」を探しています。イベントアグリゲーターは最もクリーンな方法ですか?他の意見/オプション?
理想的には、ToolbarRegion(シェルの2つの領域のうちの1つ)のToolbarViewにボタンがあります。このボタンは、ToolbarViewModelのコマンド(ToolbarControlerのコマンドを参照)を呼び出し、次に2つのことを実行します(私は思いますか?)...最初に、すべてのサブスクライバーにクローズ時間であることを通知し、いずれかのサブスクライバーがクローズをキャンセルできるようにしますそして...次に、キャンセルされない場合は、どういうわけかシェルに閉じるように通知します。私のアプリのシャットダウンモードは「ShutdownMode.OnMainWindowClose」に設定されているので、シェルが閉じたら、すべて設定されているはずです。
誰かがこれを手伝ってくれますか?
.net - Event Aggregator: ソリューションの変更に助けが必要
アプリケーション用のイベント アグリゲータを設計しようとしています。(私はデザインパターンに慣れていないので、まだ完全に理解していないかもしれません).
まず、アグリゲーターのようなソリューションを既に作成しましたが、効率を高めて依存関係を減らすために改善とリファクタリングが必要です。
1) Event Aggregator 設計パターンでは、.NET データ ソースはパブリッシャーと見なされますか? (出版社の役割についてはよくわかりません)。
2) 特定のデータ ソースだけでなく特定のデータ イベントへのサブスクリプションを処理し、他を無視するには、ソリューションをどのように設計すればよいでしょうか? リストを保持してたゆまずループすることから遠ざかる解決策を見たいと思います..しかし、これをすべて一緒に回避できるかどうかはわかりません.