代码改变世界

asp.net的CodeDom

2007-12-20 00:42  buru  阅读(223)  评论(0)    收藏  举报
asp.net2.0的编译模型很灵活,可以用自定义的BuildProvider解析特定的文件编译。
像asp.net里的master页面,.ashx,.ascx 以及.aspx的页面都由特定的buildprovider解析;
晚上自己试验了一下,做了个ORM映射的demo;
在网站的App_Code 下添加个文件demo.dbconfig(扩展名任意)是xml格式的
Code
自己建个类继承System.Web.BuildProvider来解析这个文件,让asp.net 知道怎么生成一个类。
生成的类是用表的字段名作为属性.
Code
网站添加这个BuilProvider引用,还要在webconfig里添加这个配置。
 <system.web>
     
    
        
<compilation debug="true">
            
<buildProviders >
                
<add extension=".dbconfig"   type="Samples.OrmBuildProvider,MyBuilder"/>
            
</buildProviders>
        
</compilation>
       
        
<authentication mode="Windows" />
    

    
</system.web>

完了之后,
在asp.net临时文件夹下生成的.cs文件为

还能被VS智能感知到 ,很cool吧。

调试的时候发现动态编译时查询了两次数据库。
源码下载(vs2008下打开)