У меня есть некоторые проблемы с обработкой события, которое я поднимаю в отдельной 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());
}
}