public void SimulateChangeAgreementWithCarrierProperties(CAgreementWithCarrier objAgreement, enumActionSaveCancel enActionType, System.Boolean bIsNewAgreement) { // Создаем объект, хранящий информацию, которую нужно передать // объектам, получающим уведомление о событии ChangeAgreementWithCarrierPropertieEventArgs e = new ChangeAgreementWithCarrierPropertieEventArgs(objAgreement, enActionType, bIsNewAgreement); // Вызываем виртуальный метод, уведомляющий наш объект о возникновении события // Если нет типа, переопределяющего этот метод, наш объект уведомит все объекты, // подписавшиеся на уведомление о событии OnChangeAgreementWithCarrierProperties(e); }
/// <summary> /// Инициирует событие и уведомляет о нем зарегистрированные объекты /// </summary> /// <param name="e"></param> protected virtual void OnChangeAgreementWithCarrierProperties(ChangeAgreementWithCarrierPropertieEventArgs e) { // Сохраняем поле делегата во временном поле для обеспечение безопасности потока EventHandler <ChangeAgreementWithCarrierPropertieEventArgs> temp = m_ChangeAgreementProperties; // Если есть зарегистрированные объектв, уведомляем их if (temp != null) { temp(this, e); } }