一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

提供第三種代碼生成方式——通過自定義BuildProvider為ASP.NET提供代碼生成

  之前寫了一些關于代碼生成的文章,提供了兩種不同方式的代碼生成解決方案,即CodeDOM+Custom ToolT4。對于ASP.NET應用,你還有第三種選擇——自定義BuildProvider。[文中涉及的源代碼從這里下載]

目錄
一、BuildProvider是什么?
二、將XML表示的消息轉換成VB.NET或者C#代碼
三、將XML轉換成CodeDOM
四、自定義BuildProvider
五、BuildProvider的應用

  一、BuildProvider是什么?

  對于ASP.NET應用的開發者來說,你可能不知道什么是BuildProvider,但是你幾乎無時無刻不在使用它所帶來的代碼生成機制。當你創建一個.ASPx文件的時候,為什么會自動創建對應源代碼?當你在該.ASPx頁面中以XML的方式添加一個按鈕,源代碼中為什么會自動添加一個同名的屬性。實際上,ASP.NET就是通過一個特殊的BuildProvider實現了將.ASPx文件內容轉換成相應的源代碼,這個特殊的.ASPx文件就是:PageBuildProvider。基于不同的文件類型,ASP.NET會采用不同的BuildProvider進行源代碼的生成。比如UserControlBuildProvider和MasterPageBuildProvider分別實現了基于用戶控件文件(.ascx)和母板頁(.master)的源代碼生成。你可以通過查看%Windows%/Microsoft.NET/Framework/v2.0.50727/CONFIG/web.config看看在默認情況下使用的BuildProvider以及它基于的源文件類型(擴展名)。

   1: <?xml version="1.0" encoding="utf-8"?>
2: <configuration>
3: <system.web>
4: ... ...
5: <compilation>
6: <buildProviders>
7: <add extension=".ASPx" type="System.Web.Compilation.PageBuildProvider"/>
8: <add extension=".ascx" type="System.Web.Compilation.UserControlBuildProvider"/>
9: <add extension=".master" type="System.Web.Compilation.MasterPageBuildProvider"/>
10: <add extension=".asmx" type="System.Web.Compilation.WebServiceBuildProvider"/>
11: <add extension=".ashx" type="System.Web.Compilation.WebHandlerBuildProvider"/>
12: <add extension=".soap" type="System.Web.Compilation.WebServiceBuildProvider"/>
13: <add extension=".resx" type="System.Web.Compilation.ResXBuildProvider"/>
14: <add extension=".resources" type="System.Web.Compilation.ResourcesBuildProvider"/>
15: <add extension=".wsdl" type="System.Web.Compilation.WsdlBuildProvider"/>
16: <add extension=".xsd" type="System.Web.Compilation.XsdBuildProvider"/>
17: <add extension=".js" type="System.Web.Compilation.ForceCopyBuildProvider"/>
18: <add extension=".lic" type="System.Web.Compilation.IgnoreFileBuildProvider"/>
19: <add extension=".licx" type="System.Web.Compilation.IgnoreFileBuildProvider"/>
20: <add extension=".exclude" type="System.Web.Compilation.IgnoreFileBuildProvider"/>
21: <add extension=".refresh" type="System.Web.Compilation.IgnoreFileBuildProvider"/>
22: <add extension=".svc" type="System.ServiceModel.Activation.ServiceBuildProvider, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
23: <add extension=".xoml" type="System.ServiceModel.Activation.WorkflowServiceBuildProvider, System.WorkflowServices, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
24: </buildProviders>
25: </compilation>
26: </system.web>
27: </configuration>

NET技術提供第三種代碼生成方式——通過自定義BuildProvider為ASP.NET提供代碼生成,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 丁香婷婷在线 | avtt中文字幕 | 91免费福利视频 | 国内精品久久久久久久久野战 | 亚洲国产乱码在线精品 | 亚洲日本激情综合在线观看 | 东京加勒比中文字幕波多野结衣 | 婷婷99视频精品全部在线观看 | 成人怡红院视频在线观看 | 欧美成人免费全部观看天天性色 | 国内精品伊人久久大香线焦 | 色综合图 | 国产婷婷一区二区三区 | 四虎影视久久久 | 亚洲国产成人资源在线软件 | 成人91视频| 色婷婷色综合缴情在线 | 亚洲精品在线播放视频 | 伊人久久大香线蕉综合亚洲 | 香蕉一区二区三区观 | 丁香六月 久久久 | 国产欧美一区二区精品性色99 | 91亚洲国产成人久久精品网站 | 亚洲人成高清毛片 | 激情图片亚洲 | 国产网站免费视频 | 四虎国产永久在线观看 | 91久久打屁股调教网站 | 亚洲欧美在线视频观看 | 国产在线观看福利 | 国产美女在线精品免费观看 | 国产美女久久久 | 国产成人精品视频免费 | 一级做a| 久久久久久久网站 | 久久精品青草社区 | 天天做.天天爱.天天综合网 | 手机国产乱子伦精品视频 | 美女很黄很黄是免费的·无遮挡网站 | 国产亚洲精品观看91在线 | 99国产成人精品2021 |