Este tema aún no ha recibido ninguna valoración - Valorar este tema

Type.GetEvent (Método) (String, BindingFlags)

Actualización: noviembre 2007

Cuando se reemplaza en una clase derivada, devuelve el objeto EventInfo que representa el evento especificado y aplica las restricciones de enlace especificadas.

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)
public abstract EventInfo GetEvent(
	string name,
	BindingFlags bindingAttr
)
public abstract EventInfo GetEvent(
	String name,
	BindingFlags bindingAttr
)
public abstract function GetEvent(
	name : String, 
	bindingAttr : BindingFlags
) : EventInfo

Parámetros

name
Tipo: System.String
String que contiene el nombre de un evento que la clase Type actual declara o hereda.
bindingAttr
Tipo: 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

Tipo: System.Reflection.EventInfo
Objeto EventInfo que representa el evento especificado que el objeto Type actual declara o hereda, si existe; de lo contrario, es null.

Implementaciones

_Type.GetEvent(String, BindingFlags)
ExcepciónCondición
ArgumentNullException

El valor de name es null.

Los siguientes marcadores de filtro BindingFlags pueden utilizarse para definir los eventos que van a incluirse en la búsqueda:

  • Especifique BindingFlags.Instance o BindingFlags.Static para obtener un valor devuelto.

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

  • Especifique BindingFlags.NonPublic para incluir eventos no públicos (es decir, eventos privados y protegidos) en la búsqueda.

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

Los siguientes marcadores de modificación BindingFlags pueden utilizarse para cambiar la forma en que se lleva a cabo la búsqueda:

  • BindingFlags.IgnoreCase para omitir la distinción entre mayúsculas y minúsculas de name.

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

Para obtener más información, vea System.Reflection.BindingFlags.

Se considera que un evento es público para la reflexión si tiene al menos un método o un descriptor de acceso que es público. En caso contrario, el evento se considera privado, y se debe utilizar BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static (en Visual Basic, combine los valores utilizando Or) para obtenerlo.

Si el evento solicitado no es público y el llamador no tiene una clase ReflectionPermission para reflejar objetos no públicos fuera del ensamblado actual, este método devuelve null.

Si el objeto Type actual representa un tipo genérico construido, este método devuelve EventInfo con los parámetros de tipo sustituidos por los argumentos de tipo adecuados.

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

En el ejemplo de código siguiente se utiliza el método GetEvent(String, BindingFlags) para buscar un tipo para un evento público o no público denominado "Clic" que no sea static (Shared en Visual Basic).

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


import System.*;
import System.Reflection.*;
import System.Security.*;

class MyEventExample
{
    public static void main(String[] args)
    {
        try {
            // Creates a bitmask based on BindingFlags.
            BindingFlags myBindingFlags = BindingFlags.Instance
                | BindingFlags.Public | BindingFlags.NonPublic;
            Type myTypeBindingFlags = System.Windows.Forms.Button.class.ToType();
            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.get_Message());
        }
        catch (ArgumentNullException e) {
            Console.WriteLine("An exception occurred.");
            Console.WriteLine("Message :" + e.get_Message());
        }
        catch (System.Exception e) {
            Console.WriteLine("The following exception was raised : {0}",
                e.get_Message());
        }
    } //main
} //MyEventExample


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile para Smartphone, Windows Mobile para Pocket PC, Xbox 360

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 3.5, 2.0, 1.0

XNA Framework

Compatible con: 2.0, 1.0
¿Te ha resultado útil?
(Caracteres restantes: 1500)

Adiciones de comunidad

AGREGAR
© 2013 Microsoft. Reservados todos los derechos.