다음을 통해 공유


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 가져옵니다EventInfo.

#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 메서드가 호출되면 단일 개체에 호출된 메서드만 있습니다. 대리자 선언에 멀티캐스트 한정자를 적용할 수 있습니다. 그러면 대리자의 invoke 메서드가 호출될 때 여러 메서드를 호출할 수 있습니다.

EventInfoGetCustomAttributestrue 매개 변수가 inherit 형식 계층 구조를 걷지 않는 경우 를 호출 ICustomAttributeProvider.GetCustomAttributes 합니다. 사용 하 여 System.Attribute 사용자 지정 특성을 상속 합니다.

구현자 참고

에서 EventInfo상속하는 경우 , 및 GetRemoveMethod(Boolean)GetRaiseMethod(Boolean)멤버GetAddMethod(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

이벤트가 발생할 때 호출되는 메서드(public이 아닌 메서드 포함)를 가져옵니다.

ReflectedType

MemberInfo의 이 인스턴스를 가져오는 데 사용된 클래스 개체를 가져옵니다.

(다음에서 상속됨 MemberInfo)
RemoveMethod

비공용 메서드를 포함하여 이벤트 메서드를 제거하기 위한 MethodInfo 개체를 가져옵니다.

메서드

AddEventHandler(Object, Delegate)

이벤트 소스에 이벤트 처리기를 추가합니다.

Equals(Object)

이 인스턴스가 지정된 개체와 같은지를 나타내는 값을 반환합니다.

Equals(Object)

이 인스턴스가 지정된 개체와 같은지를 나타내는 값을 반환합니다.

(다음에서 상속됨 MemberInfo)
GetAddMethod()

이벤트 소스에 이벤트 처리기 대리자를 추가하는 데 사용되는 메서드를 반환합니다.

GetAddMethod(Boolean)

파생된 클래스에서 재정의된 경우 이벤트의 AddEventHandler(Object, Delegate) 메서드에 대한 MethodInfo 개체를 검색하고 public이 아닌 메서드를 반환할지 여부를 지정합니다.

GetCustomAttributes(Boolean)

파생 클래스에서 재정의되는 경우 이 멤버에 적용된 모든 사용자 지정 특성의 배열을 반환합니다.

(다음에서 상속됨 MemberInfo)
GetCustomAttributes(Type, Boolean)

파생된 클래스에서 재정의하는 경우 이 멤버에 적용되고 Type으로 식별되는 사용자 지정 특성의 배열을 반환합니다.

(다음에서 상속됨 MemberInfo)
GetCustomAttributesData()

대상 멤버에 적용된 특성에 대한 데이터를 나타내는 CustomAttributeData 개체의 목록을 반환합니다.

(다음에서 상속됨 MemberInfo)
GetHashCode()

이 인스턴스의 해시 코드를 반환합니다.

GetHashCode()

이 인스턴스의 해시 코드를 반환합니다.

(다음에서 상속됨 MemberInfo)
GetOtherMethods()

.other 지시문을 사용하여 메타데이터의 이벤트에 연결된 public 메서드를 반환합니다.

GetOtherMethods(Boolean)

.other 지시문을 사용하여 메타데이터의 이벤트에 연결된 메서드를 반환합니다. 이때 public이 아닌 메서드를 포함할지 여부를 지정할 수 있습니다.

GetRaiseMethod()

이벤트가 발생할 때 호출되는 메서드를 반환합니다.

GetRaiseMethod(Boolean)

파생된 클래스에서 재정의된 경우 이벤트가 발생될 때 호출되는 메서드를 반환하고 public이 아닌 메서드를 반환할지 여부를 지정합니다.

GetRemoveMethod()

이벤트 소스에서 이벤트 처리기 대리자를 제거하는 데 사용되는 메서드를 반환합니다.

GetRemoveMethod(Boolean)

파생된 클래스에서 재정의된 경우 이벤트의 메서드를 제거하기 위해 MethodInfo 개체를 검색하고 public이 아닌 메서드를 반환할지 여부를 지정합니다.

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

확장 메서드

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)

지정된 멤버에 대해 메타데이터 토큰을 사용할 수 있는지를 나타내는 값을 반환합니다.

적용 대상

스레드 보안

이 형식은 스레드로부터 안전합니다.