DotNetNuke межмодульная связь - PullRequest
2 голосов
/ 13 марта 2009

Я изучаю межмодульное взаимодействие с DotNetNuke 4.8.4 - и мне интересно, есть ли у кого-нибудь хорошие примеры для этого.

Я понимаю, что вы внедрили IModuleCommunicator для отправителя и IModuleListener для получателя, но не видите способа связать их вместе, кроме как просто переместить их на одну страницу.

ВСЕ ли слушатели на данной странице слушают ВСЕХ отправителей на данной странице? Если да, то как лучше отфильтровать шум?

Ответы [ 3 ]

3 голосов
/ 14 марта 2009

Я только что читал об IMC вчера вечером в Митчел Селлерс Программирование модуля DotNetNuke книга.

Вот некоторые из основных блюд:

  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 для использования.

0 голосов
/ 14 марта 2009

Я использую Откройте Web Studio . Это интересный инструмент, хотя ему не хватает надежной документации. Это позволяет мне связывать два модуля DotNetNuke на одной странице и автоматически перезагружать информацию о втором, основываясь на том, что что-то щелкнуло на первом. Я не знаю, если это то, что вы ищете. Если да, я могу дать вам еще несколько советов и несколько ссылок на учебные пособия о том, как заставить эту вещь работать.

OWS бесплатен (с платной поддержкой), но, как я уже сказал, ему не хватает глубокой документации, хотя вы можете пройти мимо с некоторым терпением и суетой.

0 голосов
/ 13 марта 2009

Я не использовал IMC лично, но, насколько я понимаю, все слушатели делают слушают всех отправителей. ModuleCommunicationEventArgs, отправляемый слушателю, содержит свойство Target, которое, я думаю, должно быть первым, что вы должны проверить, т. Е. Проверить, является ли это сообщение для вас.

...