using System; using System.Reflection; namespace System.ComponentModel { // Token: 0x020000BA RID: 186 internal class ReflectionEventDescriptor : EventDescriptor { // Token: 0x06000638 RID: 1592 RVA: 0x00010004 File Offset: 0x0000E204 public ReflectionEventDescriptor(EventInfo eventInfo) : base(eventInfo.Name, (Attribute[])eventInfo.GetCustomAttributes(true)) { this._eventInfo = eventInfo; this._componentType = eventInfo.DeclaringType; this._eventType = eventInfo.EventHandlerType; this.add_method = eventInfo.GetAddMethod(); this.remove_method = eventInfo.GetRemoveMethod(); } // Token: 0x06000639 RID: 1593 RVA: 0x00010060 File Offset: 0x0000E260 public ReflectionEventDescriptor(Type componentType, EventDescriptor oldEventDescriptor, Attribute[] attrs) : base(oldEventDescriptor, attrs) { this._componentType = componentType; this._eventType = oldEventDescriptor.EventType; EventInfo @event = componentType.GetEvent(oldEventDescriptor.Name); this.add_method = @event.GetAddMethod(); this.remove_method = @event.GetRemoveMethod(); } // Token: 0x0600063A RID: 1594 RVA: 0x000100B0 File Offset: 0x0000E2B0 public ReflectionEventDescriptor(Type componentType, string name, Type type, Attribute[] attrs) : base(name, attrs) { this._componentType = componentType; this._eventType = type; EventInfo @event = componentType.GetEvent(name); this.add_method = @event.GetAddMethod(); this.remove_method = @event.GetRemoveMethod(); } // Token: 0x0600063B RID: 1595 RVA: 0x000100F4 File Offset: 0x0000E2F4 private EventInfo GetEventInfo() { if (this._eventInfo == null) { this._eventInfo = this._componentType.GetEvent(this.Name); if (this._eventInfo == null) { throw new ArgumentException("Accessor methods for the " + this.Name + " event are missing"); } } return this._eventInfo; } // Token: 0x0600063C RID: 1596 RVA: 0x00010150 File Offset: 0x0000E350 public override void AddEventHandler(object component, Delegate value) { this.add_method.Invoke(component, new object[] { value }); } // Token: 0x0600063D RID: 1597 RVA: 0x0001016C File Offset: 0x0000E36C public override void RemoveEventHandler(object component, Delegate value) { this.remove_method.Invoke(component, new object[] { value }); } // Token: 0x1700019D RID: 413 // (get) Token: 0x0600063E RID: 1598 RVA: 0x00010188 File Offset: 0x0000E388 public override Type ComponentType { get { return this._componentType; } } // Token: 0x1700019E RID: 414 // (get) Token: 0x0600063F RID: 1599 RVA: 0x00010190 File Offset: 0x0000E390 public override Type EventType { get { return this._eventType; } } // Token: 0x1700019F RID: 415 // (get) Token: 0x06000640 RID: 1600 RVA: 0x00010198 File Offset: 0x0000E398 public override bool IsMulticast { get { return this.GetEventInfo().IsMulticast; } } // Token: 0x040001CC RID: 460 private Type _eventType; // Token: 0x040001CD RID: 461 private Type _componentType; // Token: 0x040001CE RID: 462 private EventInfo _eventInfo; // Token: 0x040001CF RID: 463 private MethodInfo add_method; // Token: 0x040001D0 RID: 464 private MethodInfo remove_method; } }