Обработка события, возникшего в отдельной DLL - PullRequest
0 голосов
/ 17 февраля 2019

У меня есть некоторые проблемы с обработкой события, которое я поднимаю в отдельной DLL в отдельном exe-файле.У меня есть класс, который подписывается на событие в другой DLL.Когда я поднимаю событие, к тому времени, когда я добираюсь до обработки события, обработчик события становится пустым, поскольку подписавший его объект существует в отдельном стеке вызовов.Есть ли чистый способ обработки чего-то подобного?

Открытый класс B находится в другой dll на другом исполняемом файле (то же решение), что и класс A.

public static class CustomEvent
{
   public static event EventHandler<CustomEventArgs> eventHandler;
   public static void Raise(CustomEventArgs args)
   {
      // When class B raises the event. The eventHandler here is null. 
      // Meaning it doesn't know that Class A has subscribed to the event.
      EventHandler<CutomEventArgs> handler = eventHandler; 
      if(handler != null)
      {
         eventHandler(typeof(CustomEvent), args);
      }
   }
}

public class A
{
   public class A ()
   {
      CustomEvent.eventHandler += HandleEvent;
   }



public class B
{
   public void Function()
   {
      CustomEvent.Raise(new CustomEventArgs());
   }
}
...