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>
From:http://tw.wingwit.com/Article/program/net/201311/11329.html