ASP
NET
的及时编译模型和ASP
NET
是不一样的
微软重新设计了ASP
NET
的页面生成过程
使这个过程可以更灵活的被控制
在ASPNET 中我们可以通过实现自己的BuildProvider来实现编译特殊文件的效果文件的内容是没有限定的只要你能在BuildProvider中解析文件并返回NET的CodeDom就可以所以你甚至可以用自己的编程语言开发ASPNET程序
其实ASPNET 中的一些新特性就是通过BuildProvider实现的比如ashx文件MastPage等你可以从NET安装目录下的CONFIG文件夹中的nfig中找到这些默认的BuildProvider配置
下午简单做了个试验通过自定义的xml格式配置文件生成实体类的代码只要在App_Code目录下放如下格式的dbconfig文件ASPNET就会通过自定义的BuildProvider生成一个实体类的程序集你还能从代码编辑器的智能感知中看到这个程序集的类是不是很酷
<xml version= encoding=utf ><Database connection=> <Tables> <Table name=Members> <Columns> <Column name=ID type=Integer /> <Column name=Name type=VarChar /> <Column name=Email type=VarChar /> </Columns> </Table> <Table name=WorkItems> <Columns> <Column name=ID type=Integer /> <Column name=Subject type=VarChar /> <Column name=Remark type=VarChar /> <Column name=Created_On type=DateTime /> </Columns> </Table> </Tables></Database>
通过上面配置文件生成的程序集在编辑器中职能感知的效果
要实现以上效果还要在nfig文件中的systemweb节加上这段配置
它声明把dbconfig文件交给EntityBuildProvider处理
<compilation debug=true> <buildProviders> <add extension=dbconfig type=MyBuildProviderEntityBuildProvider/> </buildProviders> </compilation>