在开发自定义Web控件的时候,常需要为控件编写自定义设计器,以提供强大的设计时支持(比如:在设计时修改服务器控件的样式,在IDE中即时看到效果),而自定义设计器的资料严重不足,又往往苦恼于无法调试这个自定义设计器类,从而使得自定义设计器类在功能上受到极大的限制。下面提供一种另类的方法来调试自定义web控件,可以用来调试控件的错误,也可以用来研究设计器的工作机理!
大概原理就是打开两个IDE,一个用于编辑web控件,另一个用于编辑使用改控件的ASP.Net页面。但是,一般情况下,在第二个IDE中的动作,是无法在第一个IDE中中断调试的,所以,我们需要使用第一个IDE来启动第二个IDE。
要在 IDE 的另一个实例中进行调试,需要修改该项目的属性页,将启动应用程序设置为 Visual Studio .NET IDE 的可执行文件 — devenv.exe。在将启动项目设置为控件库时,该调试器会在调试会话期间打开 IDE 的第二个实例。在该调试会话期间,第二个IDE应该打开控件的宿主aspx文件,并将正在测试的控件添加到工具箱中。在将控件拖到窗体上后,控件便激活了,并开始执行初始化方法,以及从属性页设置属性。在控件方法中设置的断点将在 IDE 的第一个实例中被点击,可以在将控件拖到窗体之前单步执行这些断点。剩下的就和常规调试一样了。
其实,双IDE调试的方法,只要变通一下,还可以调试许多常规情况下无法调试的东西。
献丑了!~