Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método Type.GetEvents (BindingFlags)

 

Publicado: octubre de 2016

Cuando se invalida en una clase derivada, busca los eventos declarados o heredados por el objeto Type actual y aplica las restricciones de enlace especificadas.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

public abstract EventInfo[] GetEvents(
	BindingFlags bindingAttr
)

Parámetros

bindingAttr
Type: System.Reflection.BindingFlags

Máscara de bits formada por una o varias enumeraciones BindingFlags que especifican la forma en que se realiza la búsqueda.

o bien

Cero, para devolver null.

Valor devuelto

Type: System.Reflection.EventInfo[]

Matriz de objetos EventInfo que representa todos los eventos declarados o heredados por el objeto Type actual que cumplen las restricciones de enlace especificadas.

o bien

Matriz vacía de tipo EventInfo si el objeto Type actual no tiene eventos o si ninguno de los eventos coincide con las restricciones de enlace.

El GetEvents método no devuelve eventos en un orden específico, como alfabético o el orden de declaración. El código no debe depender del orden en el que se devuelven los eventos, porque ese orden varía.

La siguiente BindingFlags marcas de filtro pueden utilizarse para definir los eventos que desea incluir en la búsqueda:

  • Debe especificar BindingFlags.Instance o BindingFlags.Static para obtener una devolución.

  • Especificar BindingFlags.Public para incluir eventos públicos en la búsqueda.

  • Especificar BindingFlags.NonPublic para incluir eventos no públicos (es decir, eventos privados, internos y protegidos) en la búsqueda. Sólo protegido y se devuelven los eventos internos de las clases base; los eventos privados de las clases base no se devuelven.

  • Especificar BindingFlags.FlattenHierarchy para incluir public y protected miembros estáticos en la jerarquía; private no se incluyen los miembros estáticos de las clases heredadas.

La siguiente BindingFlags marcadores modificadores pueden utilizarse para cambiar el funcionamiento de la búsqueda:

  • BindingFlags.DeclaredOnly para buscar sólo los eventos declarados en el Type, no los eventos simplemente heredados.

Vea System.Reflection.BindingFlags para obtener más información.

Un evento se considera público para la reflexión si tiene al menos un método o un descriptor de acceso público. De lo contrario, el evento se considera privado y debe usar BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static (en Visual Basic, combine los valores utilizando Or) Para obtenerla.

Si la corriente Type representa un tipo genérico construido, este método devuelve el EventInfo objetos con los parámetros de tipo sustituidos por los argumentos del tipo adecuado.

Si la corriente Type representa un parámetro de tipo en la definición de un tipo genérico o un método genérico, este método busca los eventos de la restricción de clase.

En el ejemplo siguiente se obtiene una matriz de EventInfo objetos que coinciden con los marcadores de enlace especificados, se obtienen todos los eventos de un Button de clase y muestra los nombres de evento. Para compilar el ejemplo de Visual Basic, utilice la siguiente línea de comandos:

vbc type_getevents2.vb /r:System.Windows.Forms.dll /r:System.dll

using System;
using System.Reflection;
using System.Security;

class EventsSample
{
    public static void Main()
    { 
        try
        {
            // Create a bitmask based on BindingFlags.
            BindingFlags myBindingFlags = BindingFlags.Instance | BindingFlags.Public;  
            Type myTypeEvent = typeof(System.Windows.Forms.Button);
            EventInfo[] myEventsBindingFlags = myTypeEvent.GetEvents(myBindingFlags);
            Console.WriteLine("\nThe events on the Button class with the specified BindingFlags are:");
            for (int index = 0; index < myEventsBindingFlags.Length; index++)
            {
                Console.WriteLine(myEventsBindingFlags[index].ToString());
            }
        }
        catch(SecurityException e)
        {
            Console.WriteLine("SecurityException:" + e.Message);
        }
        catch(ArgumentNullException e)
        {
            Console.WriteLine("ArgumentNullException: " + e.Message);
        }
        catch(Exception e)
        {
            Console.WriteLine("Exception: " + e.Message);
        }
    }
}

.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Volver al principio
Mostrar: