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
Производный
Атрибуты
Реализации

Примеры

Следующий код получает 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()

Инициализирует новый экземпляр класса EventInfo.

Свойства

Имя Описание
AddMethod

MethodInfo Возвращает объект для AddEventHandler(Object, Delegate) метода события, включая недоступные методы.

Attributes

Возвращает атрибуты для этого события.

CustomAttributes

Возвращает коллекцию, содержащую настраиваемые атрибуты этого члена.

(Унаследовано от MemberInfo)
DeclaringType

Возвращает класс, объявляющий этот член.

(Унаследовано от MemberInfo)
EventHandlerType

Type Возвращает объект базового делегата обработчика событий, связанного с этим событием.

IsMulticast

Возвращает значение, указывающее, является ли событие многоадресным.

IsSpecialName

Возвращает значение, указывающее, имеет ли EventInfo имя с особым значением.

MemberType

MemberTypes Возвращает значение, указывающее, что этот элемент является событием.

MetadataToken

Возвращает значение, определяющее элемент метаданных.

(Унаследовано от MemberInfo)
Module

Возвращает модуль, в котором определяется тип, объявляющий элемент, представленный текущим MemberInfo .

(Унаследовано от MemberInfo)
Name

Возвращает имя текущего элемента.

(Унаследовано от MemberInfo)
RaiseMethod

Возвращает метод, который вызывается при возникновении события, включая недоступные методы.

ReflectedType

Возвращает объект класса, используемый для получения этого экземпляра MemberInfo.

(Унаследовано от MemberInfo)
RemoveMethod

MethodInfo Возвращает объект для удаления метода события, включая недоступные методы.

Методы

Имя Описание
AddEventHandler(Object, Delegate)

Добавляет обработчик событий в источник событий.

Equals(Object)

Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту.

GetAddMethod()

Возвращает метод, используемый для добавления делегата обработчика событий в источник событий.

GetAddMethod(Boolean)

При переопределении в производном классе извлекает MethodInfo объект для AddEventHandler(Object, Delegate) метода события, указывая, следует ли возвращать недоступные методы.

GetCustomAttributes(Boolean)

При переопределении в производном классе возвращает массив всех пользовательских атрибутов, примененных к этому элементу.

(Унаследовано от MemberInfo)
GetCustomAttributes(Type, Boolean)

При переопределении в производном классе возвращает массив пользовательских атрибутов, применяемых к этому элементу, и определяется с помощью Type.

(Унаследовано от MemberInfo)
GetCustomAttributesData()

Возвращает список CustomAttributeData объектов, представляющих данные о атрибутах, примененных к целевому элементу.

(Унаследовано от MemberInfo)
GetHashCode()

Возвращает хэш-код для этого экземпляра.

GetOtherMethods()

Возвращает общедоступные методы, связанные с событием в метаданных с помощью директивы .other .

GetOtherMethods(Boolean)

Возвращает методы, связанные с событием в метаданных с помощью .other директивы, указывая, следует ли включать недоступные методы.

GetRaiseMethod()

Возвращает метод, который вызывается при возникновении события.

GetRaiseMethod(Boolean)

При переопределении в производном классе возвращает метод, вызываемый при возникновении события, указывая, следует ли возвращать недоступные методы.

GetRemoveMethod()

Возвращает метод, используемый для удаления делегата обработчика событий из источника событий.

GetRemoveMethod(Boolean)

При переопределении в производном классе извлекает MethodInfo объект для удаления метода события, указывая, следует ли возвращать недоступные методы.

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()

T:System.Type Возвращает объект, EventInfo представляющий тип.

_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)

Указывает, определен ли один или несколько экземпляров attributeType этого элемента.

(Унаследовано от MemberInfo)

Методы расширения

Имя Описание
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)

Указывает, применяются ли пользовательские атрибуты указанного типа к указанному элементу.

Применяется к

Потокобезопасность

Этот тип является потокобезопасной.