您的位置:首页 > 其它

一个简单的检查事件丢失的小工具

2005-08-22 18:47 375 查看
问题起源

在开发Asp.Net程序的时候,我们经常遇到的一个问题就是事件丢失,特别是在软件要发布的时候,这个问题的发生更加严重。明显的症状就是点击按钮,链接以后,程序没有任何反应,如果一个一个的去查,非常的烦人,特别是使用了IEWebControl以后丢失情况更多。

工作环境

开发工具:Visual Studio .Net 2003, .Net Framework1.1

适用范围:检查C#, Asp.Net 程序

工作原理

事件未丢失的情况有三种:检查某个控件的事件字符串出现的次数是否为0(说明这个控件没有这个事件)或者为2(正常情况下都是2,一个声明,一个实现),还有出现3或者以上(某个事件被人工的调用过)。

事件丢失的情况有一种,某个控件的事件出现次数为1(只是有实现函数,而声明的地方丢失了,这个就是事件丢失)。

举例说明

一个按钮的声明

protected System.Web.UI.WebControls.Button Button1;

它的事件声明(在如下的函数中,如果事件丢失的话,这个函数中的代码将会减少)

private void InitializeComponent()

{

this.Button1.Click += new System.EventHandler(this.Button1_Click);
}

事件的实现

private void Button1_Click(object sender, System.EventArgs e)

{

// Do something

}

这个工具会检测Button1的Click事件字符串(Button1_Click)会出现几次,就是工作原理中说明的情况。

待改进

工作原理:有一个漏洞,如果一个按钮的事件的实现存在,事件的声明丢失了,但是这个事件的实现被人工调用过,那么检查出的数字就是2,或者以上,结果合法,但是实际上却是丢失事件了!

报表工具:出的结果非常简陋,写Txt文件。将来的发展可以做成FxCop报告结果一样的东西XML+XSL,这个工具可以用在DailyBuild时,一并检查这个并Mail通知开发人员。

程序在我的邮箱
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: