ComAwareEventInfo.RemoveEventHandler(Object, Delegate) Метод

Определение

Отсоединяет обработчик событий от COM-объекта.

public override void RemoveEventHandler (object target, Delegate handler);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public override void RemoveEventHandler (object target, Delegate handler);

Параметры

target
Object

Целевой объект, к которому привязан делегат события.

handler
Delegate

Делегат события.

Атрибуты

Исключения

Это событие не поддерживает открытый метод доступа remove.

Переданный обработчик нельзя использовать.

Параметр target имеет значение null, и событие не является статическим.

-или-

Класс EventInfo не объявлен для целевого объекта.

Примечание. Вместо этого в .NET для приложений Магазина Windows или переносимой библиотеке классов выполните перехват Exception .

Вызывающий объект не имеет разрешения на доступ к этому элементу.

Примечание. Вместо этого в .NET для приложений Магазина Windows или переносимой библиотеке классов перехватите исключение MemberAccessExceptionбазового класса , .

Комментарии

Этот метод аналогичен методу EventInfo.RemoveEventHandler(Object, Delegate) , за исключением того, что он позволяет отсоединять события от COM-объектов.

Если target является COM-объектом, этот метод освобождает делегат события с помощью ComEventsHelper.Remove(Object, Guid, Int32, Delegate) метода .

RemoveEventHandler упрощает отмену регистрации приемников com-событий, перенаправляющих вызовы соответствующим управляемым делегатам. Для этого требуются следующие сведения:

  • Сам целевой объект (target).

  • GUID исходного интерфейса.

  • DispID метода в COM-интерфейсе, соответствующего указанному событию.

  • Делегат, который будет вызываться, когда COM-объект активирует соответствующее событие (handler).

RemoveEventHandler ищет соответствующий исходный интерфейс COM (указанный в качестве первого параметра конструктора ComEventInterfaceAttribute.ComEventInterfaceAttribute(Type, Type) ). Затем он ищет метод в исходном интерфейсе, имя которого идентично имени события. Значение в GuidAttribute исходном интерфейсе — это GUID, передаваемый в ComEventsHelper.Remove(Object, Guid, Int32, Delegate); значение DispIDAttribute в методе — значение DispID, передаваемое в ComEventsHelper.Remove(Object, Guid, Int32, Delegate).

Применяется к

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0