codesmith 标签是怎么转化成我们需要的代码的?

xin36933 2009-12-17 10:23:55
<%= this.SourceTable.Name %>这标签是怎么转化成表名的?
<% foreach (ColumnSchema column in this.SourceTable.Columns) { %><% } %>
<%foreach..%>又是怎么编译的?
想知道怎么通过模板转化成我们需要的代码
...全文
60 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xin36933 2009-12-17
  • 打赏
  • 举报
回复
codesmith里的<%%>和aspx是一样的吗
wartim 2009-12-17
  • 打赏
  • 举报
回复
<%%>嵌入代码

aspx开头不是有句
<%@Page ... CodeFile="X.aspx.cs" Inherits="X"...%>么,aspx页继承于X.aspx.cs后台代码文件的X类

大致是生成页面时先把实现编译好的后台代码dll拿来,然后动态编译前台代码,最后联编,结果抛给客户端浏览器,其中的脚本部分可以和浏览器交互

%%等于编译时先留下位置

<%@Page ...%> 也是<%%>开头结尾的,你可以看成这里会插入一段后台的编译程序集,然后再动态编译前台部分

深入剖析ASP.NET的编译原理之二:预编译(Precompilation) http://www.cnblogs.com/artech/archive/2007/05/26/760292.html

aspx和Code behind是一种继承的关系,aspx继承和它对应的Code Behind。ASP.NET可以把Code behind和aspx分开进行编译,把它们编译到不同的Assembly中。我们就是上面的Code为例,
我们现在若对该Web site进行编译的话,Default.aspx.cs会被编译到一个Assembly中,假设这个Assembly为App_Web.dll. 我们把该Dll和aspx部署到Production Server上。如果我们现在访问defaut.aspx。ASP.NET
会对aspx进行动态编译,生成的Assembly可以暂时成为App_Web_aspx.dll

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧