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.
Ensamblado: mscorlib (en mscorlib.dll)
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.EventInfoObjeto 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ón | Condició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.