天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

提供第三種代碼生成方式——通過自定義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提供代碼生成,轉載需保留來源!

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

主站蜘蛛池模板: 国精产品999一区二区三区有限 | 日本漫画母亲口工子全彩 | 一本道本线中文无码 | www.青青草| 亚洲 欧美 综合 高清 在线 | 亚洲免费福利在线视频 | a视频免费在线 | 午夜视频体内射.COM.COM | 精品无码久久久久久久动漫 | 猫咪www958ii| 国产电影三级午夜a影院 | 在线视频 国产精品 中文字幕 | 美女扒开腿让男生桶免费看动态图 | 久久伊人精品青青草原2021 | 妇少水多18P蜜泬17P亚洲乱 | 超碰视频在线观看 | 国产成人在线视频免费观看 | 俄罗斯aaaa一级毛片 | se01国产短视频在线观看 | 国产偷抇久久精品A片蜜臀AV | 国内精品免费久久影院 | 久久免费看少妇高潮A片特爽 | 偷尝禁果H1V1幸运的山熊 | 亚洲 日韩经典 中文字幕 | 蜜芽在线播放免费人成日韩视频 | 果冻传媒视频在线观看完整版免费 | 国产精品亚洲一区二区三区久久 | 13小箩利洗澡无码视频APP | 草莓AV福利网站导航 | 穿白丝袜边走边尿白丝袜 | 天天久久狠狠色综合 | 欧美 亚洲 另类 综合网 | 稚嫩挤奶h调教h | 啊好深啊别拔就射在里面 | 亚洲日本一区二区三区在线不卡 | 日韩免费视频一区 | 久久大香线蕉综合爱 | 日产精品久久久久久久蜜殿 | 手机在线国产视频 | 性西欧俄罗斯极品 | 久久re这里视频精品8 |