2 // System.Reflection/MonoEvent.cs
5 // Paolo Molaro (lupus@ximian.com)
7 // (C) 2001 Ximian, Inc. http://www.ximian.com
11 using System.Reflection;
12 using System.Runtime.CompilerServices;
13 using System.Runtime.InteropServices;
15 namespace System.Reflection {
17 internal struct MonoEventInfo {
20 public MethodInfo add_method;
21 public MethodInfo remove_method;
22 public MethodInfo raise_method;
23 public EventAttributes attrs;
25 [MethodImplAttribute(MethodImplOptions.InternalCall)]
26 internal static extern void get_event_info (MonoEvent ev, out MonoEventInfo info);
29 internal sealed class MonoEvent: EventInfo {
33 public override EventAttributes Attributes {
36 MonoEventInfo.get_event_info (this, out info);
42 public override MethodInfo GetAddMethod(bool nonPublic) {
44 MonoEventInfo.get_event_info (this, out info);
46 return info.add_method;
49 public override MethodInfo GetRaiseMethod( bool nonPublic) {
51 MonoEventInfo.get_event_info (this, out info);
53 return info.raise_method;
56 public override MethodInfo GetRemoveMethod( bool nonPublic) {
58 MonoEventInfo.get_event_info (this, out info);
60 return info.remove_method;
63 public override Type DeclaringType {
66 MonoEventInfo.get_event_info (this, out info);
72 public override Type ReflectedType {
75 MonoEventInfo.get_event_info (this, out info);
81 public override string Name {
84 MonoEventInfo.get_event_info (this, out info);
90 public override string ToString () {
91 return EventHandlerType + " " + Name;