AddHandlerByName – Attaching to an object an event handler by name

' A generic routine that takes an object, an event name, and a list of potential' delegates to event handlers, and selects the first delegate that matches the' expected signature of the event handler.' ' Example:'    AddHandlerByName(da, "RowUpdated", '       New OleDbRowUpdatedEventHandler' (AddressOf OnOleDbRowUpdated), '       New SqlRowUpdatedEventHandler(AddressOf OnSqlRowUpdated))Sub AddHandlerByName(ByVal obj As Object, ByVal eventName As String, _    ByVal ParamArray events() As [Delegate])    ' Get the type of the object argument.    Dim ty As System.Type = obj.GetType()    ' Get the EventInfo corresponding to the requested event    Dim evInfo As System.Reflection.EventInfo = ty.GetEvent(eventName)    ' Get the delegate class that represents the event procedure    Dim evType As System.Type = evInfo.EventHandlerType    ' Compare this type with arguments being passed.    Dim del As [Delegate]    For Each del In events        If del.GetType Is evType Then            ' If this is the right delegate, add it to the list of event             ' handlers and exit.            evInfo.AddEventHandler(obj, del)            Exit Sub        End If    NextEnd Sub

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: