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;
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 метода.
Note
EventInfo не предназначено для создания событий. Объект вызывает события, диктуемые внутренним состоянием.
События используются с делегатами. Прослушиватель событий создает экземпляр делегата обработчика событий, который вызывается всякий раз, когда событие вызывается источником события. Чтобы подключиться к источнику событий, прослушиватель событий добавляет этот делегат в список вызовов в источнике. При возникновении события вызывается метод вызова делегата обработчика событий. Поддерживаются многоадресные и одноадресные уведомления о событиях. В Add метаданных должны быть помечены методы и Remove методы, а также класс делегата обработчика событий, связанный с событием.
Делегаты — это указатели на объектно-ориентированные функции. В C или C++указатель функции является ссылкой на метод. В отличие от указателя функции C или C++ делегат содержит две ссылки: ссылку на метод и ссылку на объект, поддерживающий метод. Делегаты могут вызывать метод, не зная тип класса, объявляющий или наследующий метод. Делегаты должны знать только возвращаемый тип и список параметров метода.
Модель событий работает одинаково хорошо для делегатов одноадресной и многоадресной рассылки. При вызове метода вызова делегата только один объект будет вызывать его. Модификатор многоадресной рассылки можно применить к объявлению делегата, что позволяет вызывать несколько методов при вызове метода вызова делегата.
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 |
|
| IsMulticast |
Возвращает значение, указывающее, является ли событие многоадресным. |
| IsSpecialName |
Возвращает значение, указывающее, имеет ли |
| MemberType |
MemberTypes Возвращает значение, указывающее, что этот элемент является событием. |
| MetadataToken |
Возвращает значение, определяющее элемент метаданных. (Унаследовано от MemberInfo) |
| Module |
Возвращает модуль, в котором определяется тип, объявляющий элемент, представленный текущим MemberInfo . (Унаследовано от MemberInfo) |
| Name |
Возвращает имя текущего элемента. (Унаследовано от MemberInfo) |
| RaiseMethod |
Возвращает метод, который вызывается при возникновении события, включая недоступные методы. |
| ReflectedType |
Возвращает объект класса, используемый для получения этого экземпляра |
| RemoveMethod |
|
Методы
| Имя | Описание |
|---|---|
| AddEventHandler(Object, Delegate) |
Добавляет обработчик событий в источник событий. |
| Equals(Object) |
Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту. |
| GetAddMethod() |
Возвращает метод, используемый для добавления делегата обработчика событий в источник событий. |
| GetAddMethod(Boolean) |
При переопределении в производном классе извлекает |
| GetCustomAttributes(Boolean) |
При переопределении в производном классе возвращает массив всех пользовательских атрибутов, примененных к этому элементу. (Унаследовано от MemberInfo) |
| GetCustomAttributes(Type, Boolean) |
При переопределении в производном классе возвращает массив пользовательских атрибутов, применяемых к этому элементу, и определяется с помощью Type. (Унаследовано от MemberInfo) |
| GetCustomAttributesData() |
Возвращает список CustomAttributeData объектов, представляющих данные о атрибутах, примененных к целевому элементу. (Унаследовано от MemberInfo) |
| GetHashCode() |
Возвращает хэш-код для этого экземпляра. |
| GetOtherMethods() |
Возвращает общедоступные методы, связанные с событием в метаданных с помощью директивы |
| GetOtherMethods(Boolean) |
Возвращает методы, связанные с событием в метаданных с помощью |
| GetRaiseMethod() |
Возвращает метод, который вызывается при возникновении события. |
| GetRaiseMethod(Boolean) |
При переопределении в производном классе возвращает метод, вызываемый при возникновении события, указывая, следует ли возвращать недоступные методы. |
| GetRemoveMethod() |
Возвращает метод, используемый для удаления делегата обработчика событий из источника событий. |
| GetRemoveMethod(Boolean) |
При переопределении в производном классе извлекает |
| GetType() |
Обнаруживает атрибуты события класса и предоставляет доступ к метаданным события. |
| 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) |
Указывает, определен ли один или несколько экземпляров |
Методы расширения
| Имя | Описание |
|---|---|
| GetAddMethod(EventInfo, Boolean) |
Обнаруживает атрибуты события и предоставляет доступ к метаданным события. |
| GetAddMethod(EventInfo) |
Обнаруживает атрибуты события и предоставляет доступ к метаданным события. |
| GetCustomAttribute(MemberInfo, Type, Boolean) |
Извлекает настраиваемый атрибут указанного типа, применяемого к указанному элементу, и при необходимости проверяет предки этого элемента. |
| GetCustomAttribute(MemberInfo, Type) |
Извлекает настраиваемый атрибут указанного типа, применяемого к указанному элементу. |
| GetCustomAttribute<T>(MemberInfo, Boolean) |
Извлекает настраиваемый атрибут указанного типа, применяемого к указанному элементу, и при необходимости проверяет предки этого элемента. |
| GetCustomAttribute<T>(MemberInfo) |
Извлекает настраиваемый атрибут указанного типа, применяемого к указанному элементу. |
| GetCustomAttributes(MemberInfo, Boolean) |
Извлекает коллекцию настраиваемых атрибутов, применяемых к указанному элементу, и при необходимости проверяет предки этого элемента. |
| GetCustomAttributes(MemberInfo, Type, Boolean) |
Извлекает коллекцию настраиваемых атрибутов указанного типа, применяемого к указанному элементу, и при необходимости проверяет предки этого элемента. |
| GetCustomAttributes(MemberInfo, Type) |
Извлекает коллекцию настраиваемых атрибутов указанного типа, применяемого к указанному элементу. |
| GetCustomAttributes(MemberInfo) |
Извлекает коллекцию настраиваемых атрибутов, применяемых к указанному элементу. |
| GetCustomAttributes<T>(MemberInfo, Boolean) |
Извлекает коллекцию настраиваемых атрибутов указанного типа, применяемого к указанному элементу, и при необходимости проверяет предки этого элемента. |
| GetCustomAttributes<T>(MemberInfo) |
Извлекает коллекцию настраиваемых атрибутов указанного типа, применяемого к указанному элементу. |
| GetRaiseMethod(EventInfo, Boolean) |
Обнаруживает атрибуты события и предоставляет доступ к метаданным события. |
| GetRaiseMethod(EventInfo) |
Обнаруживает атрибуты события и предоставляет доступ к метаданным события. |
| GetRemoveMethod(EventInfo, Boolean) |
Обнаруживает атрибуты события и предоставляет доступ к метаданным события. |
| GetRemoveMethod(EventInfo) |
Обнаруживает атрибуты события и предоставляет доступ к метаданным события. |
| IsDefined(MemberInfo, Type, Boolean) |
Указывает, применяются ли пользовательские атрибуты указанного типа к указанному элементу и, при необходимости, применяются к его предкам. |
| IsDefined(MemberInfo, Type) |
Указывает, применяются ли пользовательские атрибуты указанного типа к указанному элементу. |
Применяется к
Потокобезопасность
Этот тип является потокобезопасной.