2009-03-13 15 views
2

私はDotNetNuke 4.8.4とのモジュール間通信を検討しています。誰かがこれを行う良い例があるのだろうかと思っています。DotNetNukeモジュール間通信

送信者にIModuleCommunicatorを実装し、受信者にIModuleListenerを実装することは理解していますが、同じページに両方をドロップするだけでは結びつける方法はありません。

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

答えて

3

私はちょうどMitchel SellersDotNetNuke Module Programmingの本で昨夜IMCで読んでいた。

  1. のみ 同じページ上のモジュール間で動作します。ここでは

    はメイン持ち帰りの一部です。

  2. AJAXの考慮事項 - はおそらく部分ポストバック にあなたは右 ものを消費していることを確認 する必要がありますので、 IModuleListnerを実装する任意のモジュールに送信されます上げ
  3. イベントでは動作しません。ここで

情報を送信する例を示します。

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を使用するように設定するときには、これを行う機会が十分にあるようです。

+0

私はModuleCommunication.whatでnull値を取得しても問題になりますか? – ranjenanil

0

私は個人的にIMCを使用していませんが、私が理解しているとおり、すべてのリスナーすべての送信者を聞きます。リスナーに送信されるModuleCommunicationEventArgsには、Targetプロパティが含まれています。このプロパティは、最初にチェックする必要があります。つまり、このメッセージがあなたにあるかどうかを確認してください。

+0

モジュール間の通信に異種の方法を使用していますか、それとも必要性はありませんか?私は別のものを見なければならないでしょうか、これを行うにはより良い方法でしょうか? –

+0

ええ、私はそれのために使用したことがない。自己完結型のモジュールを用意しようとしていると思います。私たちがモジュール間で行う通信は、おそらくクエリ文字列上で行われます。 – bdukes

0

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

OWSは無料です(有料サポートあり)が、私は言ったように、深いドキュメンテーションはありませんが、忍耐と騒ぎで過去を過ごすことができます。