Я не уверен, как получить коллекцию наблюдателей от наблюдаемого класса при использовании событий и делегатов.События: Получить наблюдателя событий от наблюдаемого
http://msdn.microsoft.com/en-us/library/aa645739%28v=vs.71%29.aspx
В этом примере экземпляр EventListener подписан на экземпляр ListWithChangedEvent. Используя шаблон наблюдателя ванили, было бы легко получить объекты коллекции, которые слушают ListWithChangedEvent (так как в любом случае он должен поддерживать коллекцию наблюдателей). Однако, используя события, его немного менее понятно, как создать эту коллекцию в ListWithChanged объектов-наблюдателей.
Является ли это что-то вроде:
Changed.GetInvocationList().Select(item => item.Target).OfType<EventListener>().ToList();
Кажется сомнительным, это кажется немного сложным.
Редактировать: Это компилируется и дает мне мой ответ. Я просто немного опасаюсь, что это плохой способ сделать это.
Составил ли он? Это сработало? Можете ли вы разбить его? – Gusdor
Вы пытаетесь сделать это * внутри * объекта, который несет ответственность за событие? Что вы пытаетесь достичь с этим? Что бы вы хотели со статическими методами? Вы также должны иметь в виду, что код, выполняющий подписку, может не быть кодом, содержащим метод, который обрабатывает событие ... –
@Gusdor Да. Это было скомпилировано, извините, я думал, что это не так. Тем не менее, я все еще сомневаюсь в этом, но я удивлен тем, что мне очень сложно получить список экземпляров класса прослушивания. –