2

DotNetNuke 4.8.4 でモジュール間通信を行うことを検討しています。これを行う良い例があるかどうか疑問に思っています。

送信者に IModuleCommunicator を実装し、受信者に IModuleListener を実装していることは理解していますが、両方を同じページにドロップする以外にそれらを結び付ける方法がわかりません。

特定のページのすべてのリスナーが、特定のページのすべての送信者をリッスンしますか? もしそうなら、ノイズを除去するためのベストプラクティスは何ですか?

4

3 に答える 3

3

私は昨夜、ミッチェルセラーズの DotNetNukeモジュールプログラミングの本でIMCを読んでいました。

主なポイントは次のとおりです。

  1. 同じページのモジュール間でのみ機能します。
  2. AJAXの考慮事項-おそらく部分的なポストバックでは機能しません
  3. 発生したイベントは、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を設定するときは、それを行う機会がたくさんあるようです。

于 2009-03-14T16:23:37.993 に答える
0

私はOpenWebStudioを使用しています。堅牢なドキュメントはありませんが、興味深いツールです。これにより、同じページで2つのDotNetNukeモジュールを通信し、最初にクリックされたものに基づいて2番目のモジュールに情報を自動的に再ロードできます。これがあなたが探しているものかどうかはわかりません。もしそうなら、私はあなたにこれを機能させる方法に関するいくつかのヒントとチュートリアルへのリンクを与えることができます。

OWSは無料です(有料サポート付き)が、私が言ったように、ある程度の忍耐と大騒ぎで乗り越えることができますが、それは深い文書を欠いています。

于 2009-03-14T16:40:47.390 に答える
0

私はIMCを個人的に使用したことはありませんが、私が理解しているように、すべてのリスナーすべての送信者をリッスンします。リスナーに送信されるModuleCommunicationEventArgsには、Targetプロパティが含まれています。これは、最初に確認する必要があると思います。つまり、このメッセージが自分宛てであるかどうかを確認します。

于 2009-03-13T19:51:30.037 に答える