Feedback

C# - Anzahl der EventHandler eines Events bestimmen

Veröffentlicht von am 25.03.2009
(2 Bewertungen)
Bestimmt die Anzahl der registrierten EventHandler eines beliebigen Events mittels Reflection
GFU-Schulungen  [Anzeige]

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

Visual Studio Team Foundation Server 2017/2015 (TFS) für Administratoren - Kompakt

Nach dieser Schulung beherrschen Sie die Grundlagen des TFS. Sie erledigen administrative Aufgaben schnell und sicher.

// using System.Reflection;
 EventHandlerList events = (EventHandlerList)typeof(Component)
           .GetProperty("Events", BindingFlags.NonPublic | BindingFlags.Instance)
           .GetValue(MyComboBox, null);
            object key = typeof(ComboBox)
                .GetField("EVENT_SELECTEDINDEXCHANGED", BindingFlags.NonPublic | BindingFlags.Static)
                .GetValue(null);

            Delegate handlers = events[key];
            int numberOfEventHandlers = handlers.GetInvocationList().Length;
            foreach (Delegate handler in handlers.GetInvocationList())
            {
                MethodInfo method = handler.Method;
                string name = handler.Target == null ? "" : handler.Target.ToString();
                if (handler.Target is Control) name = ((Control)handler.Target).Name;
                Console.WriteLine(name + "; " + method.DeclaringType.Name + "." + method.Name);
            }
Abgelegt unter Event, EventHandler.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!