Честно говоря, я имел ограниченный успех с интерфейсом связи. Если вы можете получить работу для своих нужд, то отлично. Если вам нужно другое решение, вот что я сделал:
Если я правильно понимаю вопрос, вас интересует конкретный вариант использования, когда один модуль должен взаимодействовать с другим модулем во время загрузки страницы. Если это так, то, скорее всего, у вас есть один модуль, который необходим для связи, и один или несколько модулей, которые должны перехватить эту связь.
Я использовал Context.Items
в сочетании с жизненным циклом ASP.NET для решения этой проблемы. Коллекция Items
- это просто сумка, в которую можно вложить или вытащить что угодно. Модуль, который должен общаться, может складывать вещи в сумку с предметами во время Page_Load
:
var item = "My Thing";
Context.Items.Add("MyThingKey", item);
Модули, которые должны потреблять эту вещь, могут вытаскивать вещи из этой сумки во время PreRender
.
var item = Context.Items["MyThingKey"].ToString();
Ключ делает это во время PreRender. Таким образом, вы уверены, что потребление сообщения происходит после производства сообщения.
Удачи!