Я пытаюсь создать то, о чем я думаю, как о классе перевода, чтобы моя программа могла общаться с различными целевыми платформами.Каждая платформа будет обрабатываться отдельной реализацией абстрактного класса.Ради простоты я сократил.
У меня есть абстрактный класс с парой абстрактных методов:
abstract class ControllerBase
{
public abstract bool EnableDTMFDetection(string CallID, Party Party);
public abstract bool DisableDTMFDetection(string CallID, Party Party);
}
Впоследствии класс (классы), производный от ControllerBase,и полностью реализовать эти методы:
class PlatformOne : ControllerBase
{
public override bool EnableDTMFDetection(string CallID, Party Party)
{
// Do Stuff
return true;
}
public override bool DisableDTMFDetection(string CallID, Party Party)
{
// Do Stuff
return true;
}
}
Пока все хорошо.Для PlatformOne я вынужден определить каждый из этих методов, прописав, как я буду отправлять исходящее сообщение на свою целевую платформу.
Меня получают входящие события.Мне нужно иметь возможность вызывать события из моих производных классов.Когда я добавляю следующее в controllerbase:
public delegate void MyEventHandler(object sender, EventArgs e);
public event MyEventHandler MyEvent;
Он компилируется нормально, но я не могу вызвать событие из моего производного класса без ошибки: «Событие 'ControllerBase.MyEvent' может появляться только влевая часть + = или - = (за исключением случаев, когда используется внутри типа 'ControllerBase') "
Итак, а) Как я могу поднять свое событие из моего производного класса, и б) может ли кто-нибудьпредложить механизм для принудительного связывания указанных событий из моего производного класса (а-ля абстрактные функции или методы интерфейса).Спасибо, звоните :) 1016 *