ComAwareEventInfo.RemoveEventHandler(Object, Delegate) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
從 COM 物件中斷連結事件處理常式。
public:
override void RemoveEventHandler(System::Object ^ target, Delegate ^ handler);
public override void RemoveEventHandler (object target, Delegate handler);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public override void RemoveEventHandler (object target, Delegate handler);
override this.RemoveEventHandler : obj * Delegate -> unit
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
override this.RemoveEventHandler : obj * Delegate -> unit
Public Overrides Sub RemoveEventHandler (target As Object, handler As Delegate)
參數
- target
- Object
事件委派繫結的目標物件。
- handler
- Delegate
事件委派。
- 屬性
例外狀況
此事件不具公用 remove
存取子。
無法使用傳入的處理常式。
target
參數是 null
且事件不是靜態的。
-或-
未在目標上宣告 EventInfo。
注意:在 適用於 Windows 市集應用程式的 .NET 或 可攜式類別庫中,改為攔截 Exception 。
呼叫端無權存取該成員。
注意:在 適用於 Windows 市集應用程式的 .NET 或 可攜式類別庫中,改為攔截基類例外狀況 MemberAccessException。
備註
這個方法與 方法類似 EventInfo.RemoveEventHandler(Object, Delegate) ,不同之處在於它可讓您從 COM 物件卸離事件。
如果 target
是 COM 對象,這個方法會使用 ComEventsHelper.Remove(Object, Guid, Int32, Delegate) 方法釋放委派給事件。
RemoveEventHandler 有助於取消註冊 COM 事件接收,以將呼叫轉送至對應的 Managed 委派。 它需要下列資訊:
目標物件本身 (
target
) 。來源介面的 GUID。
對應至指定事件之 COM 介面上方法的 DispID。
當 COM 物件觸發對應事件時所叫用的委派 (
handler
) 。
RemoveEventHandler 查閱對應的 COM 來源介面, (指定為建構函式) 的第一個參數 ComEventInterfaceAttribute.ComEventInterfaceAttribute(Type, Type) 。 然後它會在名稱與事件名稱相同的來源介面上查詢方法。 來源介面上的 值 GuidAttribute
是傳遞至 ComEventsHelper.Remove(Object, Guid, Int32, Delegate)的 GUID;方法上的 值 DispIDAttribute
是傳遞至 ComEventsHelper.Remove(Object, Guid, Int32, Delegate)的 DispID 值。