Я почти уверен, что вы архивируете тот же результат, что и NSNotificationCenter, создав единый объект, содержащий список наблюдаемых, который реализует определенный интерфейс на основе ваших требований к бизнесу, или вызывает лямбу или запускает событие для каждого сообщения.отправленный этим синглтоном, вы включаете список наблюдаемых и проверяете идентификатор сообщения. Как только вы найдете одно или несколько, вы можете вызвать метод интерфейса, или выполнить лямбда-выражение, или вызвать событие, определенное для переваривания содержимого сообщения.
Примерно так:
public class NotificationCenter {
public static NotificationCenter Default = new NotificationCenter();
private List<KeyValuePair<string, INotifiable>> consumers;
private NotificationCenter () {
consumers = new List<INotifiable>();
}
public void Register(string id, INotifiable consumer) {
consumers.Add(new KeyValuePair(id, consumer));
}
public void Send(String id, object data) {
foreach(KeyValuePair consumer : consumers) {
if(consumer.Key == id)
consumer.Value.Notify(data);
}
}
}
public interface INotifiable {
void Notify(object data);
}
public class ConsumerPage : PhoneApplicationPage, INotifiable {
public ConsumerPage() {
NotificationCenter.Default.Register("event", this);
}
private Notify(object data) {
//do what you want
}
}
public class OtherPage : PhoneApplicationPage {
public OtherPage() {
NotificationCenter.Default.Send("event", "Hello!");
}
}