繁体   English   中英

在ASP.NET / C#中的调试中查找分配的EventHandlers

[英]Find assigned EventHandlers in debug in asp.net / C#

我在使用asp.net和嵌入在用户控件中的第三方控件时遇到问题。 我想将事件处理程序分配给第三方控件的事件之一。 它允许分配,但事件处理程序永远不会受到影响。 我相信我要么搞乱了事件处理程序分配,要么在错误的时间分配了它。 我想通过调试跟踪事件处理程序的分配。 如何检查在调试中分配给控件的事件处理程序?

如果您有用户控件的源,则可以将一些日志记录代码添加到事件的添加/删除访问器中。

在VS调试器中,您还可以检查事件中的_invocationList字段的内容(基MulticastDelegate类)。 展开它将显示附加的处理程序列表。

使用Visual Studio中的“监视”(或“本地”或“自动”)窗口,您可以深入挖掘持有事件的委托(假定它是标准事件),并查看其包含的方法。

编辑:

如果事件只有一个处理程序, base.base.Method在委托字段的base.base.Method看到它。 如果它具有多个处理程序,则base._invocationList将是一个单方法委托的数组; 您可以检查每个中的base.base.Method

如果_invocationList委托的不为空,它base.base.Method将被忽略。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM