Поделиться через


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

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

Свойства

AddMethod

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

Attributes

Получает атрибуты этого события.

CustomAttributes

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

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

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

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

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

IsCollectible

Получает значение, указывающее, является ли объект MemberInfo частью сборки, содержащейся в забираемом контексте AssemblyLoadContext.

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

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

IsSpecialName

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

MemberType

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

MemberType

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

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

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

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

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

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

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

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

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

ReflectedType

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

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

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

Методы

AddEventHandler(Object, Delegate)

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

Equals(Object)

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

Equals(Object)

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

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

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

GetAddMethod(Boolean)

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

GetCustomAttributes(Boolean)

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

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

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

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

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

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

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

GetHashCode()

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

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

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

GetOtherMethods(Boolean)

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

GetRaiseMethod()

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

GetRaiseMethod(Boolean)

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

GetRemoveMethod()

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

GetRemoveMethod(Boolean)

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

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

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

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

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

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)

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

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

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

Данный тип потокобезопасен.