Condividi tramite


EventInfo Classe

Definizione

Individua gli attributi di un evento e consente di accedere ai relativi metadati.

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
Ereditarietà
EventInfo
Derivato
Attributi
Implementazioni

Esempio

Il codice seguente ottiene un EventInfo oggetto per l'evento Click della Button classe .

#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

Commenti

Usare la EventInfo classe per esaminare gli eventi e associare i gestori eventi, come illustrato nel codice di esempio per il AddEventHandler metodo .

Nota

EventInfo non deve essere usato per generare eventi. Un oggetto genera eventi in base allo stato interno.

Gli eventi vengono usati con i delegati. Un listener di eventi crea un'istanza di un delegato del gestore eventi che viene richiamato ogni volta che l'evento viene generato da un'origine evento. Per connettersi all'origine evento, il listener di eventi aggiunge questo delegato all'elenco chiamate nell'origine. Quando viene generato l'evento, viene chiamato il metodo invoke del delegato del gestore eventi. Sono supportate sia le notifiche di eventi multicast che di eventi a cast singolo. I Add metodi e Remove , oltre alla classe delegato del gestore eventi associati a un evento, devono essere contrassegnati nei metadati.

I delegati sono puntatori a funzione orientati agli oggetti. In C o C++, un puntatore a funzione è un riferimento a un metodo. A differenza del puntatore a funzione C o C++, un delegato contiene due riferimenti: un riferimento a un metodo e un riferimento a un oggetto che supporta il metodo . I delegati possono richiamare un metodo senza conoscere il tipo di classe che dichiara o eredita il metodo . I delegati devono conoscere solo il tipo restituito e l'elenco di parametri del metodo.

Il modello di evento funziona altrettanto bene per i delegati a cast singolo e multicast. Quando viene chiamato il metodo invoke del delegato, solo un singolo oggetto avrà un metodo chiamato su di esso. Un modificatore multicast può essere applicato a una dichiarazione delegato, che consente di chiamare più metodi quando viene chiamato il metodo invoke del delegato.

La chiamata ICustomAttributeProvider.GetCustomAttributes su EventInfo quando il parametro di GetCustomAttributes non true esegue la inherit procedura dettagliata della gerarchia dei tipi. Usare System.Attribute per ereditare attributi personalizzati.

Note per gli implementatori

Quando si eredita da EventInfo, è necessario eseguire l'override dei membri seguenti: GetAddMethod(Boolean), GetRemoveMethod(Boolean)e GetRaiseMethod(Boolean).

Costruttori

EventInfo()

Inizializza una nuova istanza della classe EventInfo.

Proprietà

AddMethod

Ottiene l'oggetto MethodInfo per il metodo AddEventHandler(Object, Delegate) dell'evento, inclusi i metodi non pubblici.

Attributes

Ottiene gli attributi per questo evento.

CustomAttributes

Ottiene una raccolta che contiene gli attributi personalizzati del membro.

(Ereditato da MemberInfo)
DeclaringType

Ottiene la classe che dichiara questo membro.

(Ereditato da MemberInfo)
EventHandlerType

Ottiene l'oggetto Type del delegato del gestore eventi sottostante associato a questo evento.

IsCollectible

Ottiene un valore che indica se questo oggetto MemberInfo fa parte di un assembly conservato in un AssemblyLoadContext ritirabile.

(Ereditato da MemberInfo)
IsMulticast

Ottiene un valore che indica se un evento è multicast.

IsSpecialName

Ottiene un valore che indica se EventInfo ha un nome con significato speciale.

MemberType

Ottiene un valore di MemberTypes che indica che questo membro è un evento.

MemberType

Quando viene eseguito l'override in una classe derivata, ottiene un valore MemberTypes che indica il tipo del membro, il metodo, il costruttore, l'evento e così via.

(Ereditato da MemberInfo)
MetadataToken

Ottiene un valore che identifica un elemento di metadati.

(Ereditato da MemberInfo)
Module

Ottiene il modulo in cui viene definito il tipo che dichiara il membro rappresentato dall'oggetto MemberInfo corrente.

(Ereditato da MemberInfo)
Name

Ottiene il nome del membro corrente.

(Ereditato da MemberInfo)
RaiseMethod

Ottiene il metodo chiamato quando viene generato l'evento, inclusi i metodi non pubblici.

ReflectedType

Ottiene l'oggetto classe utilizzato per ottenere questa istanza di MemberInfo.

(Ereditato da MemberInfo)
RemoveMethod

Ottiene l'oggetto MethodInfo per rimuovere un metodo dell'evento, inclusi i metodi non pubblici.

Metodi

AddEventHandler(Object, Delegate)

Aggiunge un gestore eventi a un'origine eventi.

Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

(Ereditato da MemberInfo)
GetAddMethod()

Restituisce il metodo usato per aggiungere un delegato del gestore eventi all'origine evento.

GetAddMethod(Boolean)

Quando viene sottoposto a override in una classe derivata, questo metodo recupera l'oggetto MethodInfo per il metodo AddEventHandler(Object, Delegate) dell'evento, che specifica se restituire metodi non pubblici.

GetCustomAttributes(Boolean)

Se sottoposto a override in una classe derivata, restituisce una matrice di tutti gli attributi personalizzati applicati a questo membro.

(Ereditato da MemberInfo)
GetCustomAttributes(Type, Boolean)

Quando viene sottoposto a override in una classe derivata, questo metodo restituisce una matrice di attributi personalizzati applicati a questo membro e identificati da Type.

(Ereditato da MemberInfo)
GetCustomAttributesData()

Restituisce un elenco di oggetti CustomAttributeData che rappresentano i dati relativi agli attributi applicati al membro di destinazione.

(Ereditato da MemberInfo)
GetHashCode()

Restituisce il codice hash per l'istanza.

GetHashCode()

Restituisce il codice hash per l'istanza.

(Ereditato da MemberInfo)
GetOtherMethods()

Restituisce i metodi pubblici associati a un evento nei metadati tramite la direttiva .other.

GetOtherMethods(Boolean)

Restituisce i metodi associati all'evento nei metadati tramite la direttiva .other, che specifica se includere i metodi non pubblici.

GetRaiseMethod()

Restituisce il metodo chiamato quando viene generato l'evento.

GetRaiseMethod(Boolean)

Quando sottoposto a override in una classe derivata, restituisce il metodo chiamato quando viene generato l'evento, che specifica se restituire metodi non pubblici.

GetRemoveMethod()

Restituisce il metodo usato per rimuovere un delegato del gestore eventi dall'origine evento.

GetRemoveMethod(Boolean)

Quando sottoposto a override in una classe derivata, recupera l'oggetto MethodInfo per la rimozione di un metodo dell'evento, che specifica se restituire metodi non pubblici.

GetType()

Individua gli attributi di un evento della classe e consente di accedere ai metadati dell'evento.

GetType()

Individua gli attributi di un membro e consente di accedere ai metadati del membro.

(Ereditato da MemberInfo)
HasSameMetadataDefinitionAs(MemberInfo)

Individua gli attributi di un evento e consente di accedere ai relativi metadati.

(Ereditato da MemberInfo)
IsDefined(Type, Boolean)

Quando se ne effettua l'override in una classe derivata, indica se a questo membro sono applicati uno o più attributi del tipo specificato o dei tipi derivati.

(Ereditato da MemberInfo)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
RemoveEventHandler(Object, Delegate)

Rimuove un gestore eventi da un'origine eventi.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Operatori

Equality(EventInfo, EventInfo)

Indica se due oggetti EventInfo sono uguali.

Inequality(EventInfo, EventInfo)

Indica se due oggetti EventInfo non sono uguali.

Implementazioni dell'interfaccia esplicita

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

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.

_EventInfo.GetType()

Restituisce un T:System.Type oggetto che rappresenta il EventInfo tipo.

_EventInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo relative a un oggetto che può quindi essere usato per ottenere informazioni sul tipo relative a un'interfaccia.

_EventInfo.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).

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

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.

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

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.

(Ereditato da MemberInfo)
_MemberInfo.GetType()

Ottiene un oggetto Type che rappresenta la classe MemberInfo.

(Ereditato da MemberInfo)
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo relative a un oggetto che può quindi essere usato per ottenere informazioni sul tipo relative a un'interfaccia.

(Ereditato da MemberInfo)
_MemberInfo.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).

(Ereditato da MemberInfo)
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.

(Ereditato da MemberInfo)
ICustomAttributeProvider.GetCustomAttributes(Boolean)

Restituisce una matrice di tutti gli attributi personalizzati definiti in questo membro, esclusi gli attributi denominati, oppure una matrice vuota se non sono presenti attributi personalizzati.

(Ereditato da MemberInfo)
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean)

Restituisce una matrice di attributi personalizzati definiti in questo membro, identificati dal tipo o da una matrice vuota, se non sono presenti attributi personalizzati di quel tipo.

(Ereditato da MemberInfo)
ICustomAttributeProvider.IsDefined(Type, Boolean)

Indica se per questo membro sono definite una o più istanze di attributeType.

(Ereditato da MemberInfo)

Metodi di estensione

GetCustomAttribute(MemberInfo, Type)

Recupera una attributo personalizzato di un tipo specificato che viene applicato a un membro specificato.

GetCustomAttribute(MemberInfo, Type, Boolean)

Recupera un attributo personalizzato di un tipo specificato che viene applicato a un membro specificato e verifica facoltativamente i predecessori di tale membro.

GetCustomAttribute<T>(MemberInfo)

Recupera una attributo personalizzato di un tipo specificato che viene applicato a un membro specificato.

GetCustomAttribute<T>(MemberInfo, Boolean)

Recupera un attributo personalizzato di un tipo specificato che viene applicato a un membro specificato e verifica facoltativamente i predecessori di tale membro.

GetCustomAttributes(MemberInfo)

Recupera una raccolta di attributi personalizzati che vengono applicati a un membro specificato.

GetCustomAttributes(MemberInfo, Boolean)

Recupera una raccolta di attributi personalizzati che vengono applicati a un membro specificato e verifica facoltativamente i predecessori di tale membro.

GetCustomAttributes(MemberInfo, Type)

Recupera una raccolta di attributi personalizzati di un tipo specificato che vengono applicati a un membro specificato.

GetCustomAttributes(MemberInfo, Type, Boolean)

Recupera una raccolta di attributi personalizzati di un tipo specificato che vengono applicati a un membro specificato e verifica facoltativamente i predecessori di tale membro.

GetCustomAttributes<T>(MemberInfo)

Recupera una raccolta di attributi personalizzati di un tipo specificato che vengono applicati a un membro specificato.

GetCustomAttributes<T>(MemberInfo, Boolean)

Recupera una raccolta di attributi personalizzati di un tipo specificato che vengono applicati a un membro specificato e verifica facoltativamente i predecessori di tale membro.

IsDefined(MemberInfo, Type)

Indica se vengono applicati attributi personalizzati del tipo specificato a un membro specificato.

IsDefined(MemberInfo, Type, Boolean)

Indica se gli attributi personalizzati di un tipo specificato vengono applicati a un membro specificato e, facoltativamente, ai relativi predecessori.

GetAddMethod(EventInfo)

Individua gli attributi di un evento e consente di accedere ai relativi metadati.

GetAddMethod(EventInfo, Boolean)

Individua gli attributi di un evento e consente di accedere ai relativi metadati.

GetRaiseMethod(EventInfo)

Individua gli attributi di un evento e consente di accedere ai relativi metadati.

GetRaiseMethod(EventInfo, Boolean)

Individua gli attributi di un evento e consente di accedere ai relativi metadati.

GetRemoveMethod(EventInfo)

Individua gli attributi di un evento e consente di accedere ai relativi metadati.

GetRemoveMethod(EventInfo, Boolean)

Individua gli attributi di un evento e consente di accedere ai relativi metadati.

GetMetadataToken(MemberInfo)

Ottiene un token di metadati per il membro specificato, se disponibile.

HasMetadataToken(MemberInfo)

Restituisce un valore che indica se un token di metadati è disponibile per il membro specificato.

Si applica a

Thread safety

Questo tipo è thread-safe.