DotNetNuke模块间通信

DotNetNuke模块间通信,dotnetnuke,dotnetnuke-module,dotnetnuke-imc,Dotnetnuke,Dotnetnuke Module,Dotnetnuke Imc,我正在研究使用DotNetNuke 4.8.4进行模块间通信,我想知道是否有人有这样做的好例子 我知道您在发送方上实现了IModuleCommunicator,在接收方上实现了IModuleListener,但除了将它们放在同一页上之外,没有其他方法将它们绑定在一起 给定页面上的所有侦听器都侦听给定页面上的所有发件人吗?如果是这样的话,滤除噪音的最佳做法是什么?我个人没有使用过IMC,但据我所知,所有的侦听器都会侦听所有的发送者。发送到侦听器的ModuleCommunicationsEventA

我正在研究使用DotNetNuke 4.8.4进行模块间通信,我想知道是否有人有这样做的好例子

我知道您在发送方上实现了IModuleCommunicator,在接收方上实现了IModuleListener,但除了将它们放在同一页上之外,没有其他方法将它们绑定在一起


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

我个人没有使用过IMC,但据我所知,所有的侦听器都会侦听所有的发送者。发送到侦听器的ModuleCommunicationsEventArgs包含一个Target属性,我认为这应该是您首先要检查的内容,即检查此消息是否发送给您。

我昨晚刚刚在书中阅读了IMC

以下是一些主要的收获:

  • 仅在上的模块之间工作 同一页
  • AJAX注意事项- 可能无法使用部分回发
  • 引发的事件将发送到 实现的任何模块 所以你必须 确定你在消费正确的食物 事情
  • 以下是发送信息的示例:

    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时,您似乎有很多机会这样做。

    我使用。这是一个有趣的工具,尽管它缺乏健壮的文档。它使我能够在同一个页面中与两个DotNetNuke模块通信,并根据在第一个页面上单击的内容在第二个页面上自动重新加载信息。我不知道这是不是你要找的。如果是的话,我可以给你一些更多的提示和一些教程的链接,告诉你如何使这件事起作用


    OWS是免费的(有付费支持),但正如我所说的,它缺乏深入的文档,尽管你可以耐心地、大惊小怪地通过它。

    你是在使用不同的方式在模块之间进行通信,还是根本就没有必要?我应该看看别的东西,也许是更好的方法吗?是的,我从来没有用过。我想我们只是尝试使用自包含的模块。我们在模块之间进行的任何通信都可能发生在querystring上。我在ModuleCommunication中得到空值。会出现什么问题?