EventInfo Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zjistí atributy události a poskytuje přístup k metadatům událostí.
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
- Dědičnost
- Odvozené
- Atributy
- Implementuje
Příklady
Následující kód získá EventInfo objekt pro Click událost Button třídy.
#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
Poznámky
EventInfo Pomocí třídy zkontrolujte události a připojte obslužné rutiny událostí, jak je znázorněno v ukázkovém kódu metodyAddEventHandler.
Poznámka
EventInfo není určen k vyvolání událostí. Objekt vyvolává události podle svého interního stavu.
Události se používají s delegáty. Naslouchací proces událostí vytvoří instanci delegáta obslužné rutiny události, který je vyvolán vždy, když je událost vyvolána zdrojem událostí. Aby se mohl připojit ke zdroji událostí, přidá naslouchací proces události tohoto delegáta do seznamu vyvolání ve zdroji. Při vyvolání události je volána metoda invoke delegáta obslužné rutiny události. Podporují se oznámení událostí s vícesměrovým vysíláním i událostí s jedním přetypováním. Metody Add
a Remove
, stejně jako třída delegáta obslužné rutiny události přidružené k události, musí být označeny v metadatech.
Delegáti jsou objektově orientované ukazatele funkcí. V jazyce C nebo C++ je ukazatel na funkci odkazem na metodu. Na rozdíl od ukazatele funkce jazyka C nebo C++ obsahuje delegát dva odkazy: odkaz na metodu a odkaz na objekt, který podporuje metodu. Delegáti mohou vyvolat metodu bez znalosti typu třídy, která deklaruje nebo dědí metodu. Delegáti potřebují znát pouze návratový typ a seznam parametrů metody.
Model událostí funguje stejně dobře pro delegáty s jedním vysíláním a vícesměrovým vysíláním. Při volání metody vyvolání delegáta bude mít metodu volanou pouze u jednoho objektu. Modifikátor vícesměrového vysílání lze použít na deklaraci delegáta, která umožňuje volání více metod při volání metody invoke delegáta.
Volání ICustomAttributeProvider.GetCustomAttributes při EventInfo
parametru inherit
GetCustomAttributes
je true
nechodí hierarchií typů. Slouží System.Attribute k dědění vlastních atributů.
Poznámky pro implementátory
Když dědíte z EventInfo
, musíte přepsat následující členy: GetAddMethod(Boolean), GetRemoveMethod(Boolean)a GetRaiseMethod(Boolean).
Konstruktory
EventInfo() |
Inicializuje novou instanci |
Vlastnosti
AddMethod |
MethodInfo Získá objekt pro metodu AddEventHandler(Object, Delegate) události, včetně neveřejných metod. |
Attributes |
Získá atributy pro tuto událost. |
CustomAttributes |
Získá kolekci, která obsahuje vlastní atributy tohoto člena. (Zděděno od MemberInfo) |
DeclaringType |
Získá třídu, která deklaruje tento člen. (Zděděno od MemberInfo) |
EventHandlerType |
|
IsCollectible |
Získá hodnotu, která označuje, zda je tento MemberInfo objekt součástí sestavení uchovávaného v collectible AssemblyLoadContext. (Zděděno od MemberInfo) |
IsMulticast |
Získá hodnotu označující, zda je událost vícesměrové vysílání. |
IsSpecialName |
Získá hodnotu označující, zda |
MemberType |
MemberTypes Získá hodnotu označující, že tento člen je událost. |
MemberType |
Při přepsání v odvozené třídě získá MemberTypes hodnotu označující typ člen – metoda, konstruktor, událost atd. (Zděděno od MemberInfo) |
MetadataToken |
Získá hodnotu, která identifikuje metadata element. (Zděděno od MemberInfo) |
Module |
Získá modul, ve kterém typ, který deklaruje člen reprezentovaný aktuální MemberInfo je definován. (Zděděno od MemberInfo) |
Name |
Získá název aktuálního člena. (Zděděno od MemberInfo) |
RaiseMethod |
Získá metodu, která je volána při vyvolání události, včetně neveřejných metod. |
ReflectedType |
Získá objekt třídy, který byl použit k získání této instance . |
RemoveMethod |
|
Metody
AddEventHandler(Object, Delegate) |
Přidá obslužnou rutinu události do zdroje události. |
Equals(Object) |
Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu. |
Equals(Object) |
Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu. (Zděděno od MemberInfo) |
GetAddMethod() |
Vrátí metodu použitou k přidání delegáta obslužné rutiny události do zdroje události. |
GetAddMethod(Boolean) |
Při přepsání v odvozené třídě, načte |
GetCustomAttributes(Boolean) |
Při přepsání v odvozené třídě vrátí pole všech vlastních atributů použitých pro tento člen. (Zděděno od MemberInfo) |
GetCustomAttributes(Type, Boolean) |
Při přepsání v odvozené třídě vrátí pole vlastních atributů použitých na tohoto člena a identifikovaných pomocí Type. (Zděděno od MemberInfo) |
GetCustomAttributesData() |
Vrátí seznam CustomAttributeData objektů představujících data o atributech, které byly použity na cílového člena. (Zděděno od MemberInfo) |
GetHashCode() |
Vrátí hodnotu hash pro tuto instanci. |
GetHashCode() |
Vrátí hodnotu hash pro tuto instanci. (Zděděno od MemberInfo) |
GetOtherMethods() |
Vrátí veřejné metody, které byly přidruženy k události v metadatech pomocí direktivy |
GetOtherMethods(Boolean) |
Vrátí metody, které byly přidruženy k události v metadatech pomocí direktivy |
GetRaiseMethod() |
Vrátí metodu, která je volána při vyvolání události. |
GetRaiseMethod(Boolean) |
Při přepsání v odvozené třídě vrátí metodu, která je volána při vyvolání události a určuje, zda se mají vrátit neveřejné metody. |
GetRemoveMethod() |
Vrátí metodu použitou k odebrání delegáta obslužné rutiny události ze zdroje událostí. |
GetRemoveMethod(Boolean) |
Při přepsání v odvozené třídě načte |
GetType() |
Zjistí atributy události třídy a poskytuje přístup k metadatům událostí. |
GetType() |
Zjistí atributy člena a poskytuje přístup k metadatům člena. (Zděděno od MemberInfo) |
HasSameMetadataDefinitionAs(MemberInfo) |
Zjistí atributy události a poskytuje přístup k metadatům událostí. (Zděděno od MemberInfo) |
IsDefined(Type, Boolean) |
Při přepsání v odvozené třídě označuje, zda jeden nebo více atributů zadaného typu nebo jeho odvozených typů je použit na tohoto člena. (Zděděno od MemberInfo) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
RemoveEventHandler(Object, Delegate) |
Odebere obslužnou rutinu události ze zdroje události. |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Operátory
Equality(EventInfo, EventInfo) |
Určuje, zda jsou dva EventInfo objekty rovny. |
Inequality(EventInfo, EventInfo) |
Určuje, zda si dva EventInfo objekty nejsou rovny. |
Explicitní implementace rozhraní
_EventInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání. |
_EventInfo.GetType() |
|
_EventInfo.GetTypeInfo(UInt32, UInt32, IntPtr) |
Načte informace o typu objektu, který lze použít k získání informací o typu pro rozhraní. |
_EventInfo.GetTypeInfoCount(UInt32) |
Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1). |
_EventInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Poskytuje přístup k vlastnostem a metodám vystaveným objektem. |
_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání. (Zděděno od MemberInfo) |
_MemberInfo.GetType() |
Type Získá objekt představující MemberInfo třídu. (Zděděno od MemberInfo) |
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr) |
Načte informace o typu objektu, který lze použít k získání informací o typu pro rozhraní. (Zděděno od MemberInfo) |
_MemberInfo.GetTypeInfoCount(UInt32) |
Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1). (Zděděno od MemberInfo) |
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Poskytuje přístup k vlastnostem a metodám vystaveným objektem. (Zděděno od MemberInfo) |
ICustomAttributeProvider.GetCustomAttributes(Boolean) |
Vrátí pole všech vlastních atributů definovaných v tomto členu, s výjimkou pojmenovaných atributů, nebo prázdné pole, pokud neexistují žádné vlastní atributy. (Zděděno od MemberInfo) |
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean) |
Vrátí pole vlastních atributů definovaných na tomto členu, které jsou identifikovány typem, nebo prázdné pole, pokud neexistují žádné vlastní atributy tohoto typu. (Zděděno od MemberInfo) |
ICustomAttributeProvider.IsDefined(Type, Boolean) |
Určuje, zda je u tohoto člena |
Metody rozšíření
GetCustomAttribute(MemberInfo, Type) |
Načte vlastní atribut zadaného typu, který je použit na zadaného člena. |
GetCustomAttribute(MemberInfo, Type, Boolean) |
Načte vlastní atribut zadaného typu, který je použit na zadaného člena, a volitelně zkontroluje předchůdce tohoto člena. |
GetCustomAttribute<T>(MemberInfo) |
Načte vlastní atribut zadaného typu, který je použit na zadaného člena. |
GetCustomAttribute<T>(MemberInfo, Boolean) |
Načte vlastní atribut zadaného typu, který je použit na zadaného člena, a volitelně zkontroluje předchůdce tohoto člena. |
GetCustomAttributes(MemberInfo) |
Načte kolekci vlastních atributů, které jsou použity na zadaného člena. |
GetCustomAttributes(MemberInfo, Boolean) |
Načte kolekci vlastních atributů, které jsou použity na zadaného člena, a volitelně zkontroluje předky tohoto člena. |
GetCustomAttributes(MemberInfo, Type) |
Načte kolekci vlastních atributů zadaného typu, které jsou použity na zadaného člena. |
GetCustomAttributes(MemberInfo, Type, Boolean) |
Načte kolekci vlastních atributů zadaného typu, které se použijí na zadaného člena, a volitelně zkontroluje předky tohoto člena. |
GetCustomAttributes<T>(MemberInfo) |
Načte kolekci vlastních atributů zadaného typu, které jsou použity na zadaného člena. |
GetCustomAttributes<T>(MemberInfo, Boolean) |
Načte kolekci vlastních atributů zadaného typu, které se použijí na zadaného člena, a volitelně zkontroluje předky tohoto člena. |
IsDefined(MemberInfo, Type) |
Určuje, zda jsou na zadaného člena použity vlastní atributy zadaného typu. |
IsDefined(MemberInfo, Type, Boolean) |
Určuje, zda se vlastní atributy zadaného typu použijí na zadaného člena a volitelně se použijí na jeho předky. |
GetAddMethod(EventInfo) |
Zjistí atributy události a poskytuje přístup k metadatům událostí. |
GetAddMethod(EventInfo, Boolean) |
Zjistí atributy události a poskytuje přístup k metadatům událostí. |
GetRaiseMethod(EventInfo) |
Zjistí atributy události a poskytuje přístup k metadatům událostí. |
GetRaiseMethod(EventInfo, Boolean) |
Zjistí atributy události a poskytuje přístup k metadatům událostí. |
GetRemoveMethod(EventInfo) |
Zjistí atributy události a poskytuje přístup k metadatům událostí. |
GetRemoveMethod(EventInfo, Boolean) |
Zjistí atributy události a poskytuje přístup k metadatům událostí. |
GetMetadataToken(MemberInfo) |
Získá token metadat pro daného člena, pokud je k dispozici. |
HasMetadataToken(MemberInfo) |
Vrátí hodnotu, která označuje, zda je token metadat k dispozici pro zadaného člena. |
Platí pro
Bezpečný přístup z více vláken
Tento typ je bezpečný pro přístup z více vláken.