代码生成利器-NCodeGenerate 教程(7) 揭开调试功能 的神秘面纱

  有同学说,NCodeGenerate是不错,功能也很强大,美中不足的调试功能太弱,要是有单步执行,设置断点,查看变量,最好象Visual Studio一样的调试功能就完美了。我说:”同学你要求也太高了吧。“。但是仔细想想,既然NCodeGenerate使用的是Razor模板引擎,最终是生成C#代码来执行的,为什么不可以用Visual Studio来调试呢。好吧,想到就做。功夫不负有心人,经过艰苦卓绝的折腾,终于成功了!噢耶!

  废话不多说,上图片:

新建模板,输入以下代码:

@model DynamicCodeGenerate.myModel
@{
int i=0;
Debugger.Launch();

Debugger.Break();

NTrace.WriteLine("Begin");
foreach(var item in Model.DataBase.Tables){
	@:TableName:@item.Name
      foreach(var itemcolumn in item.Columns)
      {
      			@:Column:@itemcolumn.Name
      }
      
      i++;
    
      	
      
}

}

在上面的代码中,

Debugger.Launch();

Debugger.Break();

  这两句十分重要,Debugger.Launch(); 是启动调试器,必须的。如果没有这一句代码的话,也会调出调试器,但是调试结束,分离进程后,控制权不能交还给NCodeGenerate,NCodeGenerate将永远处于不响应状态。如果你提前启动调试器,并附加到NCodeGenerate的话,就不需要了。不管是那种情况, Debugger.Launch() 这一句代码都没有负作用,所以就输上去吧。

  Debugger.Break(); 是告诉调试器,在这里有个断点,停下来等你的指令。

  

选择好数据源执行,弹出如下对话框:

选择“是”。精彩部分来了。

 

   熟悉调试器出来了,显示出了NCodeGenerate 生成的C#代码。好了下面的事情我就不用说了,你可以在这里设置断点,单步执行,查看变量。

NCodeGenerate完全暴露了,所有的代码都展现在你的面前,一切尽在掌控之中。

  今天就讲到这里,下一篇会将一下Razor 模板引擎生成的代码的原理和结构,敬请关注。

 

  

附: NCodeGenerate 新增了  NCodeGenerate.DBSchema 的文档,在下面的文档连接中。

附上下载地址:

NCodeGenerate.zip

文档:文档

 

NCodeGenerate 系列文章:

一、代码生成利器-NCodeGenerate 是什么?

二、代码生成利器-NCodeGenerate 教程(1) 遍历数据库内的所有表

三、代码生成利器-NCodeGenerate 教程(2) NCodeGenerate的代码公用之一

四、代码生成利器-NCodeGenerate 教程(3) 生成代码到文件.

五、代码生成利器-NCodeGenerate 教程(4) CodeSmith模板转换

六、代码生成利器-NCodeGenerate 教程(5) 多种数据库的支持

七、代码生成利器-NCodeGenerate 教程(6) 调试功能 NTrace 输出

八、代码生成利器-NCodeGenerate 教程(7) 揭开调试功能 的神秘面纱

九、代码生成利器-NCodeGenerate 教程(8) 揭开Razor模板引擎的神秘面纱 

十、代码生成利器-NCodeGenerate 教程(9) 数据类型映射Map功能

 

posted @ 2013-01-09 11:30  NCodeGenerate  阅读(1653)  评论(4编辑  收藏  举报