我应该使用某种类型的库或编写一些代码(或使用其他方式)来检查在任意对象上调用事件的顺序?

时间:2011-04-20 02:26:33

标签: c# aop

我的目标是编写这样的代码:

var ei = new EventInterceptor(_someInstance);
ei.EventFired += (s,e) => { Logger.Log("{0} fired {1}", s.ToString(), e.ToString(); }

我可以用反射逻辑来写这个,但如果有什么东西我宁愿使用它。这对于研究ado.net和winforms datagridview等复杂对象非常有用(我认为)...

1 个答案:

答案 0 :(得分:1)

基于反射的事件跟踪器可从davidbakin @ CodeProject获得:

Tracing Events Raised by Any C# Object

备选方案:如果您的平台是Vista或Windows 7,您可以尝试Event Tracing for Windows(ETW),虽然看起来学习曲线有点陡峭。

此外,the answer to a related question中提供了一个事件记录器类的建议(可能类似于Code Project文章)。