此页面有用吗?
您对此内容的反馈非常重要。 请告诉我们您的想法。
更多反馈?
1500 个剩余字符
导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

EventInfo 类

2013/12/13

发现事件的特性并提供对事件元数据的访问权。

Namespace:  System.Reflection
程序集:  mscorlib(位于 mscorlib.dll 中)

public abstract class EventInfo : MemberInfo

EventInfo 类型公开以下成员。

  名称说明
公共属性AddMethod获取事件的 AddEventHandler 方法(包括非公共方法)的 MethodInfo 对象。
公共属性Attributes获取此事件的特性。
公共属性CustomAttributes获取包含此成员的自定义特性的集合。 (从 MemberInfo 继承。)
公共属性DeclaringType获取声明该成员的类。 (从 MemberInfo 继承。)
公共属性EventHandlerType获取与此事件关联的基础事件处理程序委托的 Type 对象。
公共属性IsMulticast获取一个值,该值指示此事件是否为多路广播事件。
公共属性IsSpecialName获取一个值,通过该值指示 EventInfo 是否具有一个有特殊意义的名称。
公共属性MemberType获取一个 MemberTypes 值,该值指示此成员是事件。 (重写 MemberInfo.MemberType。)
公共属性MetadataToken获取一个值,该值标识元数据元素。 (从 MemberInfo 继承。)
公共属性Module获取一个模块,在该模块中已经定义一个类型,该类型用于声明由当前 MemberInfo 表示的成员。 (从 MemberInfo 继承。)
公共属性Name获取当前成员的名称。 (从 MemberInfo 继承。)
公共属性RaiseMethod获取引发该事件时调用的方法,包括非公共方法。
公共属性ReflectedType获取用于获取 MemberInfo 的此实例的类对象。 (从 MemberInfo 继承。)
公共属性RemoveMethod获取 MethodInfo 对象用于移除事件的方法,包括非公共方法。
返回顶部

  名称说明
公共方法AddEventHandler将事件处理程序添加到事件源。
公共方法Equals返回一个值,该值指示此实例是否与指定的对象相等。 (重写 MemberInfo.Equals(Object)。)
受保护的方法Finalize允许 Object 在垃圾回收器回收该对象之前尝试释放资源并执行其他清理操作。 (从 Object 继承。)
公共方法GetAddMethod()返回用于将事件处理程序委托添加到事件源的方法。
公共方法GetAddMethod(Boolean)当在派生类中重写时,返回用于向事件源添加事件处理程序委托的方法,并指定在当前事件为非公共事件的情况下是否返回该方法。
公共方法GetCustomAttributes(Boolean)在派生类中重写时,返回应用于此成员的所有自定义特性的数组。 (从 MemberInfo 继承。)
公共方法GetCustomAttributes(Type, Boolean)在派生类中重写时,返回应用于此成员并由 Type 标识的自定义特性的数组。 (从 MemberInfo 继承。)
公共方法GetHashCode返回此实例的哈希代码。 (重写 MemberInfo.GetHashCode()。)
公共方法GetRaiseMethod()返回在引发该事件时所调用的方法。
公共方法GetRaiseMethod(Boolean)当在派生类中重写时,返回引发事件时调用的方法,指定是否返回非公共方法。
公共方法GetRemoveMethod()返回用于从事件源中移除事件处理程序委托的方法。
公共方法GetRemoveMethod(Boolean)当在派生类中重写时,检索用于移除事件的方法的 MethodInfo 对象,指定是否返回非公共方法。
公共方法GetType获取当前实例的 Type (从 Object 继承。)
公共方法IsDefined在派生类中重写时,指示是否将指定类型或其派生类型的一个或多个特性应用于此成员。 (从 MemberInfo 继承。)
受保护的方法MemberwiseClone创建当前 Object 的浅表副本。 (从 Object 继承。)
公共方法RemoveEventHandler从事件源中移除事件处理程序。
公共方法ToString返回一个字符串,它表示当前的对象。 (从 Object 继承。)
返回顶部

  名称说明
公共扩展方法GetCustomAttribute(Type)重载。 检索应用于指定的成员的指定类型的自定义特性。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttribute(Type, Boolean)重载。 检索应用于指定成员的指定类型的自定义特性,还可以选择检查该成员的上级。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttribute<T>()重载。 检索应用于指定的成员的指定类型的自定义特性。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttribute<T>(Boolean)重载。 检索应用于指定成员的指定类型的自定义特性,还可以选择检查该成员的上级。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttributes()重载。 检索应用于指定成员的自定义特性的集合。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttributes(Type)重载。 检索应用于指定成员的指定类型的自定义特性的集合。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttributes<T>()重载。 检索应用于指定成员的指定类型的自定义特性的集合。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttributes<T>(Boolean)重载。 检索应用于指定成员的指定类型的自定义特性的集合,还可以选择检查该成员的上级。 (由 CustomAttributeExtensions 定义。)
公共扩展方法IsDefined指示是否将指定类型的自定义特性应用于指定的成员。 (由 CustomAttributeExtensions 定义。)
返回顶部

使用 EventInfo 类可检查事件以及挂钩事件处理程序,如 AddEventHandler 方法的代码示例所示。

说明注意:

EventInfo 不能用于引发事件。对象是否引发事件由内部状态所指示。

GetCustomAttributesinherit 参数为 true 时,对 EventInfo 调用 ICustomAttributeProvider.GetCustomAttributes 不遍历类型层次结构。您可以使用 System.Attribute 遍历自定义特性的类型层次结构,但只有当所有特性都派生自 System.Attribute 时才能这样做。

在 Windows Phone 中,不能从 EventInfo 继承。

下面的代码获取 TextBlock 控件的 MouseLeftButtonUp 事件的 EventInfo 对象。

说明注意:

要运行此示例,请参见生成具有静态 Windows Phone TextBlock 控件的示例


using System.Reflection;
using System;

class Example
{
    public static void Demo(System.Windows.Controls.TextBlock outputBlock)
    {
        Type myType = outputBlock.GetType();

        EventInfo myEvent = myType.GetEvent("MouseLeftButtonUp", 
            BindingFlags.Instance | BindingFlags.Public);

        if (myEvent != null)
        {
            outputBlock.Text += "Looking for the MouseLeftButtonUp event in the " +
                myType.FullName + " class.\n";
            outputBlock.Text += myEvent.ToString() + "\n";
        }
        else
        {
            outputBlock.Text += "The MouseLeftButtonUp event is not found in the " +
                myType.FullName + " class.\r\n";
        }
    }
}

/* This example produces the following output:

Looking for the MouseLeftButtonUp event in the System.Windows.Controls.TextBlock class.
System.Windows.Input.MouseButtonEventHandler MouseLeftButtonUp
 */


Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

此类型的所有公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

Microsoft 正在进行一项网上调查,以了解您对 MSDN 网站的意见。 如果您选择参加,我们将会在您离开 MSDN 网站时向您显示该网上调查。

是否要参加?
显示:
© 2015 Microsoft