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

问题起源

在开发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通知开发人员。 



程序在我的邮箱
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值