|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
namespace System.ComponentModel
{
/// <summary>
/// Provides a description of an event.
/// </summary>
public abstract class EventDescriptor : MemberDescriptor
{
internal const string RequiresUnreferencedCodeMessage = "The built-in EventDescriptor implementation uses Reflection which requires unreferenced code.";
/// <summary>
/// Initializes a new instance of the <see cref='System.ComponentModel.EventDescriptor'/> class with the
/// specified name and attribute array.
/// </summary>
protected EventDescriptor(string name, Attribute[]? attrs) : base(name, attrs)
{
}
/// <summary>
/// Initializes a new instance of the <see cref='System.ComponentModel.EventDescriptor'/> class with the name and attributes in
/// the specified <see cref='System.ComponentModel.MemberDescriptor'/>.
/// </summary>
protected EventDescriptor(MemberDescriptor descr) : base(descr)
{
}
/// <summary>
/// Initializes a new instance of the <see cref='System.ComponentModel.EventDescriptor'/> class with
/// the name in the specified <see cref='System.ComponentModel.MemberDescriptor'/> and the
/// attributes in both the <see cref='System.ComponentModel.MemberDescriptor'/> and the <see cref='System.Attribute'/> array.
/// </summary>
protected EventDescriptor(MemberDescriptor descr, Attribute[]? attrs) : base(descr, attrs)
{
}
/// <summary>
/// When overridden in a derived class, gets the type of the component this event is bound to.
/// </summary>
public abstract Type ComponentType { get; }
/// <summary>
/// When overridden in a derived class, gets the type of delegate for the event.
/// </summary>
public abstract Type EventType { get; }
/// <summary>
/// When overridden in a derived class, gets a value indicating whether the event delegate is
/// a multicast delegate.
/// </summary>
public abstract bool IsMulticast { get; }
/// <summary>
/// When overridden in a derived class, binds the event to the component.
/// </summary>
public abstract void AddEventHandler(object component, Delegate value);
/// <summary>
/// When overridden in a derived class, unbinds the delegate from the component
/// so that the delegate will no longer receive events from the component.
/// </summary>
public abstract void RemoveEventHandler(object component, Delegate value);
}
}
|