EventInfo Classe

Definição

Descobre os atributos de um evento e fornece acesso aos metadados do evento.

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
Herança
EventInfo
Derivado
Atributos
Implementações

Exemplos

O código seguinte recebe um EventInfo objeto para o Click evento da Button classe.

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

Observações

Use a EventInfo classe para inspecionar eventos e para ligar handlers de eventos, como mostrado no código de exemplo do AddEventHandler método.

Note

EventInfo não se destina a ser usado para levantar eventos. Um objeto levanta eventos conforme ditado pelo seu estado interno.

Os eventos são utilizados com delegados. Um ouvinte de eventos instancia um delegado handler de eventos que é invocado sempre que o evento é levantado por uma fonte de eventos. Para se ligar à fonte de eventos, o ouvinte de eventos adiciona este delegado à lista de invocações na fonte. Quando o evento é levantado, é chamado o método de invocação do delegado handler de eventos. São suportadas notificações de eventos multicast e single-cast. Os Add métodos and Remove , bem como a classe delegada do handler de eventos associada a um evento, devem ser marcados nos metadados.

Os delegados são ponteiros de função orientados a objetos. Em C ou C++, um ponteiro de função é uma referência a um método. Em contraste com o ponteiro de funções em C ou C++, um delegado contém duas referências: uma referência a um método e uma referência a um objeto que suporta o método. Os delegados podem invocar um método sem saber o tipo de classe que declara ou herda o método. Os delegados só precisam de conhecer o tipo de retorno e a lista de parâmetros do método.

O modelo de evento funciona igualmente bem para delegados single-cast e multicast. Quando o método de invocação do delegado é chamado, apenas um único objeto terá um método chamado sobre ele. Um modificador multicast pode ser aplicado a uma declaração de delegado, que permite chamar múltiplos métodos quando o método de invocação do delegado é chamado.

Chamar ICustomAttributeProvider.GetCustomAttributes quando EventInfo o inherit parâmetro de GetCustomAttributes é true não percorre a hierarquia de tipos. Usar System.Attribute para herdar atributos personalizados.

Notas para Implementadores

Quando herdas de EventInfo, deves sobrepor os seguintes membros: GetAddMethod(Boolean), GetRemoveMethod(Boolean), e GetRaiseMethod(Boolean).

Construtores

Name Description
EventInfo()

Inicializa uma nova instância da EventInfo classe.

Propriedades

Name Description
AddMethod

Obtém o MethodInfo objeto do AddEventHandler(Object, Delegate) método do evento, incluindo métodos não públicos.

Attributes

Obtém os atributos para este evento.

CustomAttributes

Obtém uma coleção que contém os atributos personalizados deste membro.

(Herdado de MemberInfo)
DeclaringType

Recebe a classe que declara esse membro.

(Herdado de MemberInfo)
EventHandlerType

Obtém o Type objeto do delegado handler de eventos subjacente associado a este evento.

IsMulticast

Recebe um valor que indica se o evento é multicast.

IsSpecialName

Obtém um valor que indica se tem EventInfo um nome com um significado especial.

MemberType

Recebe um MemberTypes valor que indica que este membro é um evento.

MetadataToken

Obtém um valor que identifica um elemento de metadados.

(Herdado de MemberInfo)
Module

Obtém o módulo em que o tipo que declara o elemento representado pela corrente MemberInfo está definido.

(Herdado de MemberInfo)
Name

Fica com o nome do membro atual.

(Herdado de MemberInfo)
RaiseMethod

Obtém o método que é chamado quando o evento é levantado, incluindo métodos não públicos.

ReflectedType

Obtém o objeto de classe que foi usado para obter esta instância de MemberInfo.

(Herdado de MemberInfo)
RemoveMethod

Obtém o MethodInfo objetivo de remover um método do evento, incluindo métodos pessoais.

Métodos

Name Description
AddEventHandler(Object, Delegate)

Adiciona um gestor de eventos a uma fonte de eventos.

Equals(Object)

Devolve um valor que indica se esta instância é igual a um objeto especificado.

GetAddMethod()

Devolve o método usado para adicionar um delegado handler de eventos à fonte do evento.

GetAddMethod(Boolean)

Quando sobreposto numa classe derivada, recupera o MethodInfo objeto para o AddEventHandler(Object, Delegate) método do evento, especificando se deve devolver métodos não públicos.

GetCustomAttributes(Boolean)

Quando sobrescrito numa classe derivada, devolve um array de todos os atributos personalizados aplicados a este membro.

(Herdado de MemberInfo)
GetCustomAttributes(Type, Boolean)

Quando sobrescrito numa classe derivada, devolve um array de atributos personalizados aplicados a este membro e identificados por Type.

(Herdado de MemberInfo)
GetCustomAttributesData()

Devolve uma lista de CustomAttributeData objetos que representam dados sobre os atributos que foram aplicados ao membro alvo.

(Herdado de MemberInfo)
GetHashCode()

Devolve o código de hash para esta instância.

GetOtherMethods()

Devolve os métodos públicos que foram associados a um evento nos metadados usando a .other diretiva.

GetOtherMethods(Boolean)

Devolve os métodos associados ao evento nos metadados usando a .other diretiva, especificando se devem incluir métodos não públicos.

GetRaiseMethod()

Devolve o método que é chamado quando o evento é levantado.

GetRaiseMethod(Boolean)

Quando sobrescrito numa classe derivada, devolve o método que é chamado quando o evento é levantado, especificando se deve devolver métodos não públicos.

GetRemoveMethod()

Devolve o método usado para remover um delegado handler de eventos da origem do evento.

GetRemoveMethod(Boolean)

Quando sobrescrito numa classe derivada, recupera o MethodInfo objeto para remover um método do evento, especificando se deve devolver métodos não públicos.

GetType()

Descobre os atributos de um evento de classe e fornece acesso aos metadados do evento.

HasSameMetadataDefinitionAs(MemberInfo)

Descobre os atributos de um evento e fornece acesso aos metadados do evento.

(Herdado de MemberInfo)
IsDefined(Type, Boolean)

Quando sobrescrito numa classe derivada, indica se um ou mais atributos do tipo especificado ou dos seus tipos derivados são aplicados a este membro.

(Herdado de MemberInfo)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
RemoveEventHandler(Object, Delegate)

Remove um gestor de eventos de uma fonte de eventos.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Operadores

Name Description
Equality(EventInfo, EventInfo)

Indica se dois EventInfo objetos são iguais.

Inequality(EventInfo, EventInfo)

Indica se dois EventInfo objetos não são iguais.

Implementações de Interface Explícita

Name Description
_EventInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho.

_EventInfo.GetType()

Devolve um T:System.Type objeto que representa o EventInfo tipo.

_EventInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo de um objeto, que podem ser usadas para obter as informações de tipo para uma interface.

_EventInfo.GetTypeInfoCount(UInt32)

Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1).

_EventInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acesso a propriedades e métodos expostos por um objeto.

_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho.

(Herdado de MemberInfo)
_MemberInfo.GetType()

Obtém um Type objeto que representa a MemberInfo classe.

(Herdado de MemberInfo)
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo de um objeto, que podem ser usadas para obter as informações de tipo para uma interface.

(Herdado de MemberInfo)
_MemberInfo.GetTypeInfoCount(UInt32)

Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1).

(Herdado de MemberInfo)
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acesso a propriedades e métodos expostos por um objeto.

(Herdado de MemberInfo)
ICustomAttributeProvider.GetCustomAttributes(Boolean)

Devolve um array de todos os atributos personalizados definidos neste membro, excluindo atributos nomeados, ou um array vazio se não existirem atributos personalizados.

(Herdado de MemberInfo)
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean)

Devolve um array de atributos personalizados definidos neste membro, identificados pelo tipo, ou um array vazio se não existirem atributos personalizados desse tipo.

(Herdado de MemberInfo)
ICustomAttributeProvider.IsDefined(Type, Boolean)

Indica se uma ou mais instâncias de attributeType estão definidas neste membro.

(Herdado de MemberInfo)

Métodos da Extensão

Name Description
GetAddMethod(EventInfo, Boolean)

Descobre os atributos de um evento e fornece acesso aos metadados do evento.

GetAddMethod(EventInfo)

Descobre os atributos de um evento e fornece acesso aos metadados do evento.

GetCustomAttribute(MemberInfo, Type, Boolean)

Recupera um atributo personalizado de um tipo especificado que é aplicado a um membro especificado e, opcionalmente, inspeciona os antepassados desse membro.

GetCustomAttribute(MemberInfo, Type)

Recupera um atributo personalizado de um tipo especificado que é aplicado a um membro especificado.

GetCustomAttribute<T>(MemberInfo, Boolean)

Recupera um atributo personalizado de um tipo especificado que é aplicado a um membro especificado e, opcionalmente, inspeciona os antepassados desse membro.

GetCustomAttribute<T>(MemberInfo)

Recupera um atributo personalizado de um tipo especificado que é aplicado a um membro especificado.

GetCustomAttributes(MemberInfo, Boolean)

Recupera uma coleção de atributos personalizados que são aplicados a um membro especificado e, opcionalmente, inspeciona os antepassados desse membro.

GetCustomAttributes(MemberInfo, Type, Boolean)

Recupera uma coleção de atributos personalizados de um tipo especificado que são aplicados a um membro especificado e, opcionalmente, inspeciona os antepassados desse membro.

GetCustomAttributes(MemberInfo, Type)

Recupera uma coleção de atributos personalizados de um tipo especificado que são aplicados a um membro especificado.

GetCustomAttributes(MemberInfo)

Recupera uma coleção de atributos personalizados que são aplicados a um membro especificado.

GetCustomAttributes<T>(MemberInfo, Boolean)

Recupera uma coleção de atributos personalizados de um tipo especificado que são aplicados a um membro especificado e, opcionalmente, inspeciona os antepassados desse membro.

GetCustomAttributes<T>(MemberInfo)

Recupera uma coleção de atributos personalizados de um tipo especificado que são aplicados a um membro especificado.

GetRaiseMethod(EventInfo, Boolean)

Descobre os atributos de um evento e fornece acesso aos metadados do evento.

GetRaiseMethod(EventInfo)

Descobre os atributos de um evento e fornece acesso aos metadados do evento.

GetRemoveMethod(EventInfo, Boolean)

Descobre os atributos de um evento e fornece acesso aos metadados do evento.

GetRemoveMethod(EventInfo)

Descobre os atributos de um evento e fornece acesso aos metadados do evento.

IsDefined(MemberInfo, Type, Boolean)

Indica se atributos personalizados de um tipo especificado são aplicados a um membro especificado e, opcionalmente, aplicados aos seus antecessores.

IsDefined(MemberInfo, Type)

Indica se atributos personalizados de um tipo especificado são aplicados a um membro especificado.

Aplica-se a

Segurança de Thread

Este tipo é seguro para fios.