114 lines
3.2 KiB
C#
114 lines
3.2 KiB
C#
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;
|
|
}
|
|
}
|