Files
2026-06-04 11:42:34 +02:00

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;
}
}