Как перейти из [] байтов, чтобы получить шестнадцатеричный

Вместо того, чтобы ссылаться на любого делегата, вы можете задействовать свой класс, чтобы вернуть список вызовов вызывающему абоненту. В основном вы можете написать что-то вроде этого (предполагая, что MyEvent объявлен внутри MyClass):

public class MyClass 
{
  public event EventHandler MyEvent;

  public IEnumerable GetMyEventHandlers()  
  {  
      return from d in MyEvent.GetInvocationList()  
             select (EventHandler)d;  
  }  
}

Таким образом, вы можете получить доступ ко всему списку вызовов извне MyClass и отменить подписку на любой обработчик, который вы хотите. Например:

myClass.MyEvent -= myClass.GetMyEventHandlers().Last();

Я написал полный пост об этом tecnique здесь .

24
задан Flimzy 29 June 2019 в 12:56
поделиться