DotNetNuke模块间通信

时间:2009-03-13 19:16:02

标签: dotnetnuke dotnetnuke-module dotnetnuke-imc

我正在考虑与DotNetNuke 4.8.4进行模块间通信 - 我想知道是否有人有这样做的好例子。

据我所知,你在发送器上实现了IModuleCommunicator,在接收器上实现了IModuleListener - 但是除了将它们放在同一页面上之外,没有办法将它们绑定在一起。

给定页面上的所有侦听器是否都会侦听给定页面上的所有发件人?如果是这样,滤除噪音的最佳做法是什么?

3 个答案:

答案 0 :(得分:3)

我昨晚在Mitchel Sellers DotNetNuke Module Programming一书中读到了IMC。

以下是一些主要内容:

  1. 仅适用于模块之间的模块 同一页。
  2. AJAX注意事项 - 可能无法使用部分回发
  3. 发送的事件将发送至 任何实现的模块 IModuleListner,所以你必须 确定你正在消耗权利 的事情。
  4. 以下是发送信息的示例:

    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时看起来你有很多机会这样做。

答案 1 :(得分:0)

我没有亲自使用过IMC,但据我所知,所有听众都会听取所有发件人的意见。发送到侦听器的ModuleCommunicationEventArgs包含一个Target属性,我认为这应该是您要检查的第一件事,即检查此消息是否适合您。

答案 2 :(得分:0)

我使用Open Web Studio。这是一个有趣的工具,虽然它缺乏强大的文档。它使我能够在同一页面中传递两个DotNetNuke模块,并根据第一个点击的内容自动在第二个上重新加载信息。我不知道这是不是你要找的。如果是的话,我可以给你一些提示和一些关于如何使这个东西起作用的教程的链接。

OWS是免费的(有付费支持),但正如我所说,它缺乏深度文档,尽管你可以耐心一点并且过时了。