Как я могу получить фактический экземпляр делегата EventHandler из события в VB.NET?

В C # я мог бы сделать что-то вроде этого:

EventHandler handler = this.SomeEvent;

... что позволило бы мне, например, сделать:

Delegate[] attachedHandlers = handler.GetInvocationList();

В VB.NET я могу ' Кажется, я не понимаю, как сделать то же самое.

Это не работает:

Dim handler As EventHandler = Me.SomeEvent

... из-за следующей ошибки:

Открытое событие SomeEvent (отправитель As Object, e As EventArgs) 'является событием, {{1} } и не может быть вызван напрямую. Используйте оператор 'RaiseEvent', чтобы вызвать событие .

Но это тоже не работает:

Dim handler As EventHandler = AddressOf Me.SomeEvent

... потому что:

Операнд AddressOf должен быть именем метода (без скобок).

Итак, как я могу получить EventHandler из события в VB.NET? Единственная идея, которая сразу приходит в голову, - это использовать отражение, но это кажется довольно нелепым.

5
задан Dan Tao 5 November 2010 в 16:58
поделиться