您的位置:首页 > 编程语言 > C#

C# 清除事件绑定的函数

2015-12-09 08:29 513 查看
原文地址:点击打开链接
#region 清除事件绑定的函数
/// <summary>
/// 清除事件绑定的函数
/// </summary>
/// <param name="objectHasEvents">拥有事件的实例</param>
/// <param name="eventName">事件名称</param>
public static void ClearAllEvents(object objectHasEvents, string eventName)
{
if (objectHasEvents == null)
{
return;
}
try
{
EventInfo[] events = objectHasEvents.GetType().GetEvents(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
if (events == null || events.Length < 1)
{
return;
}
for (int i = 0; i < events.Length; i++)
{
EventInfo ei = events[i];
if (ei.Name == eventName)
{
FieldInfo fi = ei.DeclaringType.GetField(eventName, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
if (fi != null)
{
fi.SetValue(objectHasEvents, null);
}
break;
}
}
}
catch
{
}
}
#endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# 清除 事件 绑定 函数