DotNetNukeモジュール間通信
-
22-07-2019 - |
質問
DotNetNuke 4.8.4とのモジュール間通信を検討しています-これを行う良い例があるかどうか疑問に思っています。
送信者にIModuleCommunicatorを、受信者にIModuleListenerを実装することは理解していますが、同じページに両方をドロップする以外にそれらを結び付ける方法がわかりません。
特定のページのすべてのリスナーは、特定のページのすべての送信者をリッスンしますか?その場合、ノイズを除去するためのベストプラクティスは何ですか?
解決
昨夜IMCでミッチェルセラー DotNetNukeモジュールプログラミングブック。
主なポイントは次のとおりです:
- 上のモジュール間でのみ動作します 同じページ。
- AJAXに関する考慮事項- おそらく部分的なポストバックでは動作しません
- 発生したイベントはに送信されます 実装するモジュール IModuleListner、だからあなたは あなたが権利を消費していることを確認してください こと。
情報を送信する例を次に示します。
if (ModuleCommunication != null)
{
var args = new ModuleCommunicationEventArgs();
args.Sender = "Something";
args.Target = "Something Else";
args.Text = "Something";
args.Type = "Something";
args.Value = new Object();
ModuleCommunication(this, args);
}
ノイズを除去するには、非常に具体的な識別情報を含めるようにします。ただし、EventArgsをセットアップするときに消費されるようにする機会は十分にあるようです。
他のヒント
IMCを個人的に使用したことはありませんが、理解しているように、すべてのリスナーはすべての送信者をリッスンします 。リスナーに送信されるModuleCommunicationEventArgsにはTargetプロパティが含まれています。これは、最初に確認する必要があると思います。つまり、このメッセージが自分宛かどうかを確認します。
Web Studioを開くを使用します。強力なドキュメントはありませんが、興味深いツールです。同じページで2つのDotNetNukeモジュールを通信し、最初にクリックされたものに基づいて2番目のモジュールで情報を自動的にリロードできます。これがあなたが探しているものかどうかはわかりません。もしそうなら、私はあなたにいくつかのヒントとこの事を機能させる方法に関するチュートリアルへのリンクを提供することができます。
OWSは無料です(有料サポート付き)が、先ほど言ったように、詳細なドキュメントはありませんが、忍耐と煩わしさを乗り越えることができます。