EventInfo Clase

Definición

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
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public abstract class EventInfo : System.Reflection.MemberInfo
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
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type EventInfo = class
    inherit MemberInfo
Public MustInherit Class EventInfo
Inherits MemberInfo
Public MustInherit Class EventInfo
Inherits MemberInfo
Implements _EventInfo
Herencia
EventInfo
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 del 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 EventInfo.

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 Type del controlador de eventos subyacente asociado a este evento.

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 EventInfo tiene un nombre con un significado especial.

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 MemberInfo.

(Heredado de MemberInfo)
RemoveMethod

Obtiene el objeto MethodInfo para quitar un método del evento, incluidos los métodos privados.

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 MethodInfo para el método AddEventHandler(Object, Delegate) del evento, especificando si se deben devolver o no métodos no públicos.

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 .other.

GetOtherMethods(Boolean)

Devuelve los métodos que se han asociado a un evento en los metadatos mediante la directiva .other, especificando si se deben incluir métodos no públicos.

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 MethodInfo para quitar un método del evento, especificando si se deben devolver o no métodos no públicos.

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) (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 objeto T:System.Type que representa el tipo EventInfo.

_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 attributeType se definen en este miembro.

(Heredado de MemberInfo)

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)
GetAddMethod(EventInfo, Boolean)
GetRaiseMethod(EventInfo)
GetRaiseMethod(EventInfo, Boolean)
GetRemoveMethod(EventInfo)
GetRemoveMethod(EventInfo, Boolean)
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.