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 {
16 internal struct MonoEventInfo {
19 public MethodInfo add_method;
20 public MethodInfo remove_method;
21 public MethodInfo raise_method;
22 public EventAttributes attrs;
24 [MethodImplAttribute(MethodImplOptions.InternalCall)]
25 internal static extern void get_event_info (MonoEvent ev, out MonoEventInfo info);
28 internal sealed class MonoEvent: EventInfo {
32 public override EventAttributes Attributes {
35 MonoEventInfo.get_event_info (this, out info);
41 public override MethodInfo GetAddMethod(bool nonPublic) {
43 MonoEventInfo.get_event_info (this, out info);
45 return info.add_method;
47 public override MethodInfo GetRaiseMethod( bool nonPublic) {
49 MonoEventInfo.get_event_info (this, out info);
51 return info.raise_method;
53 public override MethodInfo GetRemoveMethod( bool nonPublic) {
55 MonoEventInfo.get_event_info (this, out info);
57 return info.remove_method;
60 public override Type DeclaringType {
63 MonoEventInfo.get_event_info (this, out info);
68 public override Type ReflectedType {
71 MonoEventInfo.get_event_info (this, out info);
76 public override string Name {
79 MonoEventInfo.get_event_info (this, out info);