EventInfo Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Обнаруживает атрибуты события и обеспечивает доступ к его метаданным.
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
- Наследование
- Производный
- Атрибуты
- Реализации
Примеры
Следующий код получает EventInfo объект для Click события Button класса .
#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
Комментарии
Используйте класс для EventInfo проверки событий и подключения обработчиков событий, как показано в примере кода для AddEventHandler метода .
Примечание
EventInfo не предназначен для использования для создания событий. Объект вызывает события в зависимости от его внутреннего состояния.
События используются с делегатами. Прослушиватель событий создает экземпляр делегата обработчика событий, который вызывается всякий раз, когда событие вызывается источником события. Чтобы подключиться к источнику событий, прослушиватель событий добавляет этот делегат в список вызовов в источнике. При возникновении события вызывается метод invoke делегата обработчика событий. Поддерживаются уведомления о событиях многоадресной рассылки и одноадресной рассылки. Методы Add
и Remove
, а также класс делегата обработчика событий, связанный с событием, должны быть помечены в метаданных.
Делегаты — это объектно-ориентированные указатели на функции. В C или C++ указатель функции является ссылкой на метод. В отличие от указателя функции C или C++, делегат содержит две ссылки: ссылку на метод и ссылку на объект, поддерживающий метод . Делегаты могут вызывать метод, не зная тип класса, который объявляет или наследует метод. Делегаты должны знать только тип возвращаемого значения и список параметров метода.
Модель событий одинаково хорошо подходит для делегатов с одним приведением и многоадресной рассылкой. При вызове метода вызова делегата метод будет вызываться только у одного объекта. Модификатор многоадресной рассылки можно применить к объявлению делегата, что позволяет вызывать несколько методов при вызове метода invoke делегата.
Вызов ICustomAttributeProvider.GetCustomAttributes , EventInfo
если inherit
параметр имеет GetCustomAttributes
значение , true
не выполняет обход иерархии типов. Используется System.Attribute для наследования настраиваемых атрибутов.
Примечания для тех, кто реализует этот метод
При наследовании от EventInfo
необходимо переопределить следующие элементы: GetAddMethod(Boolean), GetRemoveMethod(Boolean)и GetRaiseMethod(Boolean).
Конструкторы
EventInfo() |
Инициализирует новый экземпляр класса |
Свойства
AddMethod |
Получает объект MethodInfo для метода AddEventHandler(Object, Delegate) события, включая методы, не являющиеся открытыми. |
Attributes |
Получает атрибуты этого события. |
CustomAttributes |
Получает коллекцию, содержащую пользовательские атрибуты этого члена. (Унаследовано от MemberInfo) |
DeclaringType |
Получает класс, объявляющий этот член. (Унаследовано от MemberInfo) |
EventHandlerType |
Получает объект |
IsCollectible |
Получает значение, указывающее, является ли объект MemberInfo частью сборки, содержащейся в забираемом контексте AssemblyLoadContext. (Унаследовано от MemberInfo) |
IsMulticast |
Получает значение, указывающее, является ли событие многоадресным. |
IsSpecialName |
Возвращает значение, показывающее, есть ли у |
MemberType |
Возвращает значение MemberTypes, указывающее, что этот элемент является событием. |
MemberType |
При переопределении в производном классе получает значение MemberTypes, определяющее тип члена: метод, конструктор, событие и так далее. (Унаследовано от MemberInfo) |
MetadataToken |
Получает значение, определяющее элемент метаданных. (Унаследовано от MemberInfo) |
Module |
Получает модуль, в котором определяется тип, объявляющий член, представленный текущим объектом MemberInfo. (Унаследовано от MemberInfo) |
Name |
Возвращает имя текущего члена. (Унаследовано от MemberInfo) |
RaiseMethod |
Получает метод, вызываемый при возникновении события, включая неоткрытые методы. |
ReflectedType |
Получает объект класса, который использовался для извлечения данного экземпляра объекта |
RemoveMethod |
Получает объект |
Методы
AddEventHandler(Object, Delegate) |
Добавляет обработчик событий в источник события. |
Equals(Object) |
Возвращает значение, показывающее, равен ли экземпляр указанному объекту. |
Equals(Object) |
Возвращает значение, показывающее, равен ли экземпляр указанному объекту. (Унаследовано от MemberInfo) |
GetAddMethod() |
Возвращает метод, используемый для добавления делегата обработчика событий в источник событий. |
GetAddMethod(Boolean) |
При переопределении в производном классе получает объект |
GetCustomAttributes(Boolean) |
При переопределении в производном классе возвращает массив всех настраиваемых атрибутов, примененных к данному члену. (Унаследовано от MemberInfo) |
GetCustomAttributes(Type, Boolean) |
При переопределении в производном классе возвращает массив настраиваемых атрибутов, применяемых к этому элементу и определяемых параметром Type. (Унаследовано от MemberInfo) |
GetCustomAttributesData() |
Возвращает список объектов CustomAttributeData, представляющих данные об атрибутах, примененных к целевому элементу. (Унаследовано от MemberInfo) |
GetHashCode() |
Возвращает хэш-код данного экземпляра. |
GetHashCode() |
Возвращает хэш-код данного экземпляра. (Унаследовано от MemberInfo) |
GetOtherMethods() |
Возвращает открытые методы, которые были сопоставлены событию в метаданных с использованием директивы |
GetOtherMethods(Boolean) |
Возвращает методы, которые были сопоставлены событию в метаданных с использованием директивы |
GetRaiseMethod() |
Возвращает метод, который вызывается при возникновении события. |
GetRaiseMethod(Boolean) |
При переопределении в производном классе возвращает метод, который вызывается при возникновении события; указывает, следует ли возвращать закрытые методы. |
GetRemoveMethod() |
Возвращает метод, используемый для удаления делегата обработчика событий из источника событий. |
GetRemoveMethod(Boolean) |
При переопределении в производном классе получает объект |
GetType() |
Обнаруживает атрибуты события класса и обеспечивает доступ к его метаданным. |
GetType() |
Выявляет атрибуты элемента и обеспечивает доступ к его метаданным. (Унаследовано от MemberInfo) |
HasSameMetadataDefinitionAs(MemberInfo) |
Обнаруживает атрибуты события и обеспечивает доступ к его метаданным. (Унаследовано от MemberInfo) |
IsDefined(Type, Boolean) |
При переопределении в производном классе указывает, применяются ли для этого члена один или несколько атрибутов заданного типа или его производных типов. (Унаследовано от MemberInfo) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
RemoveEventHandler(Object, Delegate) |
Удаляет обработчик событий из источника события. |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Операторы
Equality(EventInfo, EventInfo) |
Определение равенства двух объектов EventInfo. |
Inequality(EventInfo, EventInfo) |
Определяет неравенство двух объектов EventInfo. |
Явные реализации интерфейса
_EventInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. |
_EventInfo.GetType() |
Возвращает объект , |
_EventInfo.GetTypeInfo(UInt32, UInt32, IntPtr) |
Возвращает сведения о типе объекта, которые затем могут использоваться для получения сведений о типе интерфейса. |
_EventInfo.GetTypeInfoCount(UInt32) |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). |
_EventInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к открытым свойствам и методам объекта. |
_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от MemberInfo) |
_MemberInfo.GetType() |
Возвращает объект Type, представляющий класс MemberInfo. (Унаследовано от MemberInfo) |
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr) |
Возвращает сведения о типе объекта, которые затем могут использоваться для получения сведений о типе интерфейса. (Унаследовано от MemberInfo) |
_MemberInfo.GetTypeInfoCount(UInt32) |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от MemberInfo) |
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к открытым свойствам и методам объекта. (Унаследовано от MemberInfo) |
ICustomAttributeProvider.GetCustomAttributes(Boolean) |
Возвращает массив всех настраиваемых атрибутов, определенных для этого элемента, за исключением именованных атрибутов, или пустой массив, если атрибуты отсутствуют. (Унаследовано от MemberInfo) |
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean) |
Возвращает массив настраиваемых атрибутов, определенных для этого элемента с учетом типа, или пустой массив, если отсутствуют настраиваемые атрибуты определенного типа. (Унаследовано от MemberInfo) |
ICustomAttributeProvider.IsDefined(Type, Boolean) |
Указывает, сколько экземпляров |
Методы расширения
GetCustomAttribute(MemberInfo, Type) |
Извлекает пользовательский атрибут заданного типа, примененный к указанному элементу. |
GetCustomAttribute(MemberInfo, Type, Boolean) |
Извлекает настраиваемый атрибут указанного типа, который применяется к указанному элементу и, при необходимости, проверяет предков этого элемента. |
GetCustomAttribute<T>(MemberInfo) |
Извлекает пользовательский атрибут заданного типа, примененный к указанному элементу. |
GetCustomAttribute<T>(MemberInfo, Boolean) |
Извлекает настраиваемый атрибут указанного типа, который применяется к указанному элементу и, при необходимости, проверяет предков этого элемента. |
GetCustomAttributes(MemberInfo) |
Извлекает коллекцию настраиваемых атрибутов, примененных к указанному члену. |
GetCustomAttributes(MemberInfo, Boolean) |
Извлекает коллекцию пользовательских атрибутов, которые применяются к указанному элементу и, при необходимости, проверяет предков этого элемента. |
GetCustomAttributes(MemberInfo, Type) |
Извлекает коллекцию пользовательских атрибутов заданного типа, примененных к указанному элементу. |
GetCustomAttributes(MemberInfo, Type, Boolean) |
Извлекает коллекцию пользовательских атрибутов указанного типа, которые применяется к указанному элементу и, при необходимости, проверяет предков этого элемента. |
GetCustomAttributes<T>(MemberInfo) |
Извлекает коллекцию пользовательских атрибутов заданного типа, примененных к указанному элементу. |
GetCustomAttributes<T>(MemberInfo, Boolean) |
Извлекает коллекцию пользовательских атрибутов указанного типа, которые применяется к указанному элементу и, при необходимости, проверяет предков этого элемента. |
IsDefined(MemberInfo, Type) |
Указывает, применены ли какие-либо пользовательские атрибуты заданного типа к указанному члену. |
IsDefined(MemberInfo, Type, Boolean) |
Указывает применены ли настраиваемые атрибуты указанного типа к указанному элементу и, при необходимости, применены ли они к его предкам. |
GetAddMethod(EventInfo) |
Обнаруживает атрибуты события и обеспечивает доступ к его метаданным. |
GetAddMethod(EventInfo, Boolean) |
Обнаруживает атрибуты события и обеспечивает доступ к его метаданным. |
GetRaiseMethod(EventInfo) |
Обнаруживает атрибуты события и обеспечивает доступ к его метаданным. |
GetRaiseMethod(EventInfo, Boolean) |
Обнаруживает атрибуты события и обеспечивает доступ к его метаданным. |
GetRemoveMethod(EventInfo) |
Обнаруживает атрибуты события и обеспечивает доступ к его метаданным. |
GetRemoveMethod(EventInfo, Boolean) |
Обнаруживает атрибуты события и обеспечивает доступ к его метаданным. |
GetMetadataToken(MemberInfo) |
Возвращает маркер метаданных для заданного элемента, если он доступен. |
HasMetadataToken(MemberInfo) |
Возвращает значение, указывающее, доступен ли маркер метаданных для указанного элемента. |
Применяется к
Потокобезопасность
Данный тип потокобезопасен.