EventInfo Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Detecta los atributos de un evento y proporciona acceso a sus metadatos.
public ref class EventInfo abstract : System::Reflection::MemberInfo
public ref class EventInfo abstract : System::Reflection::MemberInfo, System::Runtime::InteropServices::_EventInfo
public abstract class EventInfo : System.Reflection.MemberInfo
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public abstract class EventInfo : System.Reflection.MemberInfo, System.Runtime.InteropServices._EventInfo
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public abstract class EventInfo : System.Reflection.MemberInfo, System.Runtime.InteropServices._EventInfo
type EventInfo = class
inherit MemberInfo
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type EventInfo = class
inherit MemberInfo
interface _EventInfo
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type EventInfo = class
inherit MemberInfo
interface _EventInfo
Public MustInherit Class EventInfo
Inherits MemberInfo
Public MustInherit Class EventInfo
Inherits MemberInfo
Implements _EventInfo
- Herencia
- Derivado
- Atributos
- Implementaciones
Ejemplos
El código siguiente obtiene un EventInfo objeto para el Click evento de la Button clase .
#using <System.dll>
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>
using namespace System;
using namespace System::Reflection;
using namespace System::Security;
using namespace System::Windows::Forms;
int main()
{
try
{
// Creates a bitmask based on BindingFlags.
BindingFlags myBindingFlags = static_cast<BindingFlags>(BindingFlags::Instance | BindingFlags::Public | BindingFlags::NonPublic);
Type^ myTypeBindingFlags = System::Windows::Forms::Button::typeid;
EventInfo^ myEventBindingFlags = myTypeBindingFlags->GetEvent( "Click", myBindingFlags );
if ( myEventBindingFlags != nullptr )
{
Console::WriteLine( "Looking for the Click event in the Button class with the specified BindingFlags." );
Console::WriteLine( myEventBindingFlags );
}
else
Console::WriteLine( "The Click event is not available with the Button class." );
}
catch ( SecurityException^ e )
{
Console::WriteLine( "An exception occurred." );
Console::WriteLine( "Message : {0}", e->Message );
}
catch ( ArgumentNullException^ e )
{
Console::WriteLine( "An exception occurred." );
Console::WriteLine( "Message : {0}", e->Message );
}
catch ( Exception^ e )
{
Console::WriteLine( "The following exception was raised : {0}", e->Message );
}
}
using System;
using System.Reflection;
using System.Security;
class MyEventExample
{
public static void Main()
{
try
{
// Creates a bitmask based on BindingFlags.
BindingFlags myBindingFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;
Type myTypeBindingFlags = typeof(System.Windows.Forms.Button);
EventInfo myEventBindingFlags = myTypeBindingFlags.GetEvent("Click", myBindingFlags);
if(myEventBindingFlags != null)
{
Console.WriteLine("Looking for the Click event in the Button class with the specified BindingFlags.");
Console.WriteLine(myEventBindingFlags.ToString());
}
else
{
Console.WriteLine("The Click event is not available with the Button class.");
}
}
catch(SecurityException e)
{
Console.WriteLine("An exception occurred.");
Console.WriteLine("Message :"+e.Message);
}
catch(ArgumentNullException e)
{
Console.WriteLine("An exception occurred.");
Console.WriteLine("Message :"+e.Message);
}
catch(Exception e)
{
Console.WriteLine("The following exception was raised : {0}",e.Message);
}
}
}
Imports System.Reflection
Imports System.Security
' Compile this sample using the following command line:
' vbc type_getevent.vb /r:"System.Windows.Forms.dll" /r:"System.dll"
Class MyEventExample
Public Shared Sub Main()
Try
' Creates a bitmask comprising BindingFlags.
Dim myBindingFlags As BindingFlags = BindingFlags.Instance Or BindingFlags.Public _
Or BindingFlags.NonPublic
Dim myTypeBindingFlags As Type = GetType(System.Windows.Forms.Button)
Dim myEventBindingFlags As EventInfo = myTypeBindingFlags.GetEvent("Click", myBindingFlags)
If myEventBindingFlags IsNot Nothing Then
Console.WriteLine("Looking for the Click event in the Button class with the specified BindingFlags.")
Console.WriteLine(myEventBindingFlags.ToString())
Else
Console.WriteLine("The Click event is not available with the Button class.")
End If
Catch e As SecurityException
Console.WriteLine("An exception occurred.")
Console.WriteLine("Message :" + e.Message)
Catch e As ArgumentNullException
Console.WriteLine("An exception occurred.")
Console.WriteLine("Message :" + e.Message)
Catch e As Exception
Console.WriteLine("The following exception was raised : {0}", e.Message)
End Try
End Sub
End Class
Comentarios
Use la EventInfo clase para inspeccionar eventos y enlazar controladores de eventos, como se muestra en el código de ejemplo para el AddEventHandler método .
Nota
EventInfo no está pensado para usarse para generar eventos. Un objeto genera eventos según lo dictado por su estado interno.
Los eventos se usan con delegados. Un agente de escucha de eventos crea una instancia de un delegado de controlador de eventos que se invoca cada vez que un origen de eventos genera el evento. Para conectarse al origen del evento, el agente de escucha de eventos agrega este delegado a la lista de invocación del origen. Cuando se genera el evento, se llama al método invoke del delegado del controlador de eventos. Se admiten las notificaciones de eventos de multidifusión y de conversión única. Los Add
métodos y Remove
, así como la clase delegada del controlador de eventos asociada a un evento, deben marcarse en los metadatos.
Los delegados son punteros de función orientados a objetos. En C o C++, un puntero de función es una referencia a un método. A diferencia del puntero de función de C o C++, un delegado contiene dos referencias: una referencia a un método y una referencia a un objeto que admite el método . Los delegados pueden invocar un método sin conocer el tipo de clase que declara o hereda el método. Los delegados solo necesitan conocer el tipo de valor devuelto y la lista de parámetros del método.
El modelo de eventos funciona igualmente bien para delegados de conversión única y multidifusión. Cuando se llama al método de invocación del delegado, solo un único objeto tendrá un método al que se le llamará. Se puede aplicar un modificador de multidifusión a una declaración de delegado, lo que permite llamar a varios métodos cuando se llama al método invoke del delegado.
Al llamar a ICustomAttributeProvider.GetCustomAttributes cuando EventInfo
el inherit
parámetro de GetCustomAttributes
no se true
recorre la jerarquía de tipos. Use System.Attribute para heredar atributos personalizados.
Notas a los implementadores
Cuando hereda de EventInfo
, debe invalidar los siguientes miembros: GetAddMethod(Boolean), GetRemoveMethod(Boolean)y GetRaiseMethod(Boolean).
Constructores
EventInfo() |
Inicializa una nueva instancia de la clase |
Propiedades
AddMethod |
Obtiene el objeto MethodInfo para el método AddEventHandler(Object, Delegate) del evento, incluidos los métodos privados. |
Attributes |
Obtiene los atributos de este evento. |
CustomAttributes |
Obtiene una colección que contiene los atributos personalizados de este miembro. (Heredado de MemberInfo) |
DeclaringType |
Obtiene la clase que declara este miembro. (Heredado de MemberInfo) |
EventHandlerType |
Obtiene el objeto |
IsCollectible |
Obtiene un valor que indica si este objeto MemberInfo forma parte de un ensamblado contenido en un AssemblyLoadContext recopilable. (Heredado de MemberInfo) |
IsMulticast |
Obtiene un valor que indica si el evento es de multidifusión. |
IsSpecialName |
Obtiene un valor que indica si |
MemberType |
Obtiene un valor de MemberTypes que indica que este miembro es un evento. |
MemberType |
Cuando se invalida en una clase derivada, obtiene un valor MemberTypes que indica el tipo de miembro: método, constructor, evento, etc. (Heredado de MemberInfo) |
MetadataToken |
Obtiene un valor que identifica un elemento de metadatos. (Heredado de MemberInfo) |
Module |
Obtiene el módulo en el que el tipo que declara el miembro representado por el objeto MemberInfo actual está definido. (Heredado de MemberInfo) |
Name |
Obtiene el nombre del miembro actual. (Heredado de MemberInfo) |
RaiseMethod |
Obtiene el método al que se llama cuando se provoca el evento, incluidos los métodos no públicos. |
ReflectedType |
Obtiene el objeto de la clase utilizado para obtener esta instancia de |
RemoveMethod |
Obtiene el objeto |
Métodos
AddEventHandler(Object, Delegate) |
Agrega un controlador de eventos a un origen de evento. |
Equals(Object) |
Devuelve un valor que indica si esta instancia es igual que un objeto especificado. |
Equals(Object) |
Devuelve un valor que indica si esta instancia es igual que un objeto especificado. (Heredado de MemberInfo) |
GetAddMethod() |
Devuelve el método utilizado para agregar un delegado de controlador de eventos al origen de eventos. |
GetAddMethod(Boolean) |
Cuando se reemplaza en una clase derivada, recupera el objeto |
GetCustomAttributes(Boolean) |
Cuando se reemplaza en una clase derivada, devuelve una matriz de todos los atributos personalizados aplicados a este miembro. (Heredado de MemberInfo) |
GetCustomAttributes(Type, Boolean) |
Cuando se invalida en una clase derivada, devuelve una matriz de atributos personalizados aplicados a este miembro e identificado por Type. (Heredado de MemberInfo) |
GetCustomAttributesData() |
Devuelve una lista de objetos CustomAttributeData que representan datos sobre los atributos que se aplicaron al miembro de destino. (Heredado de MemberInfo) |
GetHashCode() |
Devuelve el código hash de esta instancia. |
GetHashCode() |
Devuelve el código hash de esta instancia. (Heredado de MemberInfo) |
GetOtherMethods() |
Devuelve los métodos públicos que se han asociado a un evento en los metadatos mediante la directiva |
GetOtherMethods(Boolean) |
Devuelve los métodos que se han asociado a un evento en los metadatos mediante la directiva |
GetRaiseMethod() |
Devuelve el método al que se llama cuando se genera el evento. |
GetRaiseMethod(Boolean) |
Cuando se reemplaza en una clase derivada, devuelve el método al que se llama cuando el evento se genera, especificando si se deben devolver o no métodos no públicos. |
GetRemoveMethod() |
Devuelve el método utilizado para quitar un delegado de controlador de eventos del origen de eventos. |
GetRemoveMethod(Boolean) |
Cuando se reemplaza en una clase derivada, recupera el objeto |
GetType() |
Detecta los atributos de un evento de clase y proporciona acceso a sus metadatos. |
GetType() |
Detecta los atributos de un miembro y proporciona acceso a sus metadatos. (Heredado de MemberInfo) |
HasSameMetadataDefinitionAs(MemberInfo) |
Detecta los atributos de un evento y proporciona acceso a sus metadatos. (Heredado de MemberInfo) |
IsDefined(Type, Boolean) |
Cuando se reemplaza en una clase derivada, indica si se aplican a este miembro uno o más atributos del tipo especificado o de sus tipos derivados. (Heredado de MemberInfo) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
RemoveEventHandler(Object, Delegate) |
Quita un controlador de eventos de un origen de evento. |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Operadores
Equality(EventInfo, EventInfo) |
Indica si dos objetos EventInfo son iguales. |
Inequality(EventInfo, EventInfo) |
Indica si dos objetos EventInfo no son iguales. |
Implementaciones de interfaz explícitas
_EventInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. |
_EventInfo.GetType() |
Devuelve un |
_EventInfo.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera la información de tipo de un objeto, que se puede usar después para obtener la información de tipo de una interfaz. |
_EventInfo.GetTypeInfoCount(UInt32) |
Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). |
_EventInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Proporciona acceso a las propiedades y los métodos expuestos por un objeto. |
_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Heredado de MemberInfo) |
_MemberInfo.GetType() |
Objeto Type que representa la clase MemberInfo. (Heredado de MemberInfo) |
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera la información de tipo de un objeto, que se puede usar después para obtener la información de tipo de una interfaz. (Heredado de MemberInfo) |
_MemberInfo.GetTypeInfoCount(UInt32) |
Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). (Heredado de MemberInfo) |
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Proporciona acceso a las propiedades y los métodos expuestos por un objeto. (Heredado de MemberInfo) |
ICustomAttributeProvider.GetCustomAttributes(Boolean) |
Devuelve una matriz de todos los atributos personalizados definidos en este miembro, excluidos los atributos con nombre, o una matriz vacía si no hay atributos personalizados. (Heredado de MemberInfo) |
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean) |
Devuelve una matriz de atributos personalizados definidos en este miembro, identificados por tipo, o una matriz vacía si no hay atributos personalizados de ese tipo. (Heredado de MemberInfo) |
ICustomAttributeProvider.IsDefined(Type, Boolean) |
Indica si una o más instancias de |
Métodos de extensión
GetCustomAttribute(MemberInfo, Type) |
Recupera un atributo personalizado de un tipo especificado que se aplica a un miembro concreto. |
GetCustomAttribute(MemberInfo, Type, Boolean) |
Recupera un atributo personalizado de un tipo especificado que se aplica a un miembro concreto y, opcionalmente, inspecciona los antecesores de dicho miembro. |
GetCustomAttribute<T>(MemberInfo) |
Recupera un atributo personalizado de un tipo especificado que se aplica a un miembro concreto. |
GetCustomAttribute<T>(MemberInfo, Boolean) |
Recupera un atributo personalizado de un tipo especificado que se aplica a un miembro concreto y, opcionalmente, inspecciona los antecesores de dicho miembro. |
GetCustomAttributes(MemberInfo) |
Recupera una colección de atributos personalizados que se aplican a un miembro especificado. |
GetCustomAttributes(MemberInfo, Boolean) |
Recupera una colección de atributos personalizados que se aplican a un miembro concreto y, opcionalmente, inspecciona los antecesores de dicho miembro. |
GetCustomAttributes(MemberInfo, Type) |
Recupera una colección de atributos personalizados de un tipo especificado que se aplican a un miembro concreto. |
GetCustomAttributes(MemberInfo, Type, Boolean) |
Recupera una colección de atributos personalizados de un tipo especificado que se aplican a un miembro concreto y, opcionalmente, inspecciona los antecesores de dicho miembro. |
GetCustomAttributes<T>(MemberInfo) |
Recupera una colección de atributos personalizados de un tipo especificado que se aplican a un miembro concreto. |
GetCustomAttributes<T>(MemberInfo, Boolean) |
Recupera una colección de atributos personalizados de un tipo especificado que se aplican a un miembro concreto y, opcionalmente, inspecciona los antecesores de dicho miembro. |
IsDefined(MemberInfo, Type) |
Indica si se deben aplicar atributos personalizados de un tipo especificado a un miembro especificado. |
IsDefined(MemberInfo, Type, Boolean) |
Indica si los atributos personalizados de un tipo especificado se aplican a un miembro especificado y, opcionalmente, se aplican a sus antecesores. |
GetAddMethod(EventInfo) |
Detecta los atributos de un evento y proporciona acceso a sus metadatos. |
GetAddMethod(EventInfo, Boolean) |
Detecta los atributos de un evento y proporciona acceso a sus metadatos. |
GetRaiseMethod(EventInfo) |
Detecta los atributos de un evento y proporciona acceso a sus metadatos. |
GetRaiseMethod(EventInfo, Boolean) |
Detecta los atributos de un evento y proporciona acceso a sus metadatos. |
GetRemoveMethod(EventInfo) |
Detecta los atributos de un evento y proporciona acceso a sus metadatos. |
GetRemoveMethod(EventInfo, Boolean) |
Detecta los atributos de un evento y proporciona acceso a sus metadatos. |
GetMetadataToken(MemberInfo) |
Obtiene un token de metadatos del miembro determinado, si está disponible. |
HasMetadataToken(MemberInfo) |
Devuelve un valor que indica si un token de metadatos está disponible para el miembro especificado. |
Se aplica a
Seguridad para subprocesos
Este tipo es seguro para la ejecución de subprocesos.