CodeSmith是一个基于模板的代码生成器 我们可以定义模板来生成任何文本语言的代码。
在定义新模板前我们需要对CodeSmith所提供的集成开发环境有简单的了解 以便于 CodeSmith模板的编辑,编译,运行和管理(请参照联机丛书 F1)
安装及使用图解教程:http://blog.sina.com.cn/s/blog_49458c27010097d0.html
我使用的是CodeSmith Professional 5.0 下载地址:http://www.codesmithtools.com/
CodeSmith Explorer中提供一个简单的界面 管理和执行CodeSmith模板 我们在其 CodeSmith 文件夹下新建一个文件(NewTemplate1.cst)
打开文件(NewTemplate1.cst) 我们将在Template窗口可以看到以下内容 之后将做详细的介绍
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
<%--
Name:
Author:
Description:
--%>
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<%@ CodeTemplate Language="C#" TargetLanguage="Text" Src="" Inherits=""<s3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmdawij4mbmjzcdtpchrpb25hbdwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icmwmdawmdaipj08l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajodawmdawij4ipc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizgwmdawmci+rmfsc2u8l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajodawmdawij4ipc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizawmdawmci+jm5ic3a7q2f0zwdvcnk8l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmdawij49pc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizgwmdawmci+ijwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icm4mdawmdaipkjvb2xlyw5zpc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizgwmdawmci+ijwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icmwmdawmdaipizuynnwo0rlc2nyaxb0aw9upc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizawmdawmci+ptwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icm4mdawmdaipii8l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajodawmdawij5uaglzjm5ic3a7axmmbmjzcdthjm5ic3a7c2ftcgxljm5ic3a7ym9vbgvhbizuynnwo3byb3blcnr5ljwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icm4mdawmdaipii8l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmdawij4mbmjzcds8l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmdawij4ljmd0ozwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icmwmdawmdaipjxiciavpg0kpgltzybhbhq9iiigc3jjpsjodhrwoi8vd3d3lmnuymxvz3muy29tl0ltywdlcy9pdxrsaw5pbmdjbmrpy2f0b3jzl05vbmuuz2lmiibhbglnbj0idg9wiiavpjxiciavpg0kpgltzybhbhq9iiigc3jjpsjodhrwoi8vd3d3lmnuymxvz3muy29tl0ltywdlcy9pdxrsaw5pbmdjbmrpy2f0b3jzl05vbmuuz2lmiibhbglnbj0idg9wiiavpjwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icmwmdawmdaipizsddslpc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizawmdawmci+qczuynnwo0fzc2vtymx5jm5ic3a7tmftztwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icmwmdawmdaipj08l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajodawmdawij4ipc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizgwmdawmci+u3lzdgvtlkrhdge8l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajodawmdawij4ipc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizawmdawmci+jm5ic3a7pc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizawmdawmci+jszndds8l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmdawij48yniglz4ncjxpbwcgywx0psiiihnyyz0iahr0cdovl3d3dy5jbmjsb2dzlmnvbs9jbwfnzxmvt3v0bgluaw5nsw5kawnhdg9ycy9ob25llmdpziigywxpz249inrvcciglz48l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmdawij4mbhq7jtwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icmwmdawmdaipkambmjzcdtjbxbvcnqmbmjzcdtoyw1lc3bhy2u8l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmdawij49pc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizgwmdawmci+ijwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icm4mdawmdaipln5c3rlbs5eyxrhpc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizgwmdawmci+ijwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icmwmdawmdaipizuynnwozwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icmwmdawmdaipiumz3q7pc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizawmdawmci+pgjyic8+dqo8aw1nigfsdd0iiibzcmm9imh0dha6ly93d3cuy25ibg9ncy5jb20vsw1hz2vzl091dgxpbmluz0luzgljyxrvcnmvtm9uzs5nawyiigfsawdupsj0b3aiic8+pgjyic8+dqo8aw1nigfsdd0iiibzcmm9imh0dha6ly93d3cuy25ibg9ncy5jb20vsw1hz2vzl091dgxpbmluz0luzgljyxrvcnmvtm9uzs5nawyiigfsawdupsj0b3aiic8+txkmbmjzcds8l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmgzmij5zdgf0awm8l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmdawij4mbmjzcdtjb250zw50jm5ic3a7agvyzs48yniglz4ncjxpbwcgywx0psiiihnyyz0iahr0cdovl3d3dy5jbmjsb2dzlmnvbs9jbwfnzxmvt3v0bgluaw5nsw5kawnhdg9ycy9ob25llmdpziigywxpz249inrvcciglz5neszuynnwo2r5bmftawmmbmjzcdtjb250zw50jm5ic3a7agvyztombmjzcds8l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajodawmdawij4ipc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizgwmdawmci+jmx0oyu9jm5ic3a7u2ftcgxlu3ryaw5nuhjvcgvydhkmbmjzcdsljmd0ozwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icm4mdawmdaipii8l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmdawij48yniglz4ncjxpbwcgywx0psiiihnyyz0iahr0cdovl3d3dy5jbmjsb2dzlmnvbs9jbwfnzxmvt3v0bgluaw5nsw5kawnhdg9ycy9ob25llmdpziigywxpz249inrvcciglz5dywxsjm5ic3a7yszuynnwo3njcmlwdczuynnwo21ldghvzdombmjzcds8l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmdawij4mbhq7jt08l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmdawij4mbmjzcdttyw1wbgvnzxrob2qokszuynnwozwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icmwmdawmdaipiumz3q7pc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizawmdawmci+pgjyic8+dqo8aw1niglkpsjdb2rlaglnagxpz2h0zxixxzczn183nzvft3blbl9jbwfnzsigb25jbgljaz0idghpcy5zdhlszs5kaxnwbgf5psdub25ljzsgzg9jdw1lbnquz2v0rwxlbwvudej5swqoj0nvzgvoawdobglnahrlcjffnzm3xzc3nv9pcgvux1rlehqnks5zdhlszs5kaxnwbgf5psdub25ljzsgzg9jdw1lbnquz2v0rwxlbwvudej5swqoj0nvzgvoawdobglnahrlcjffnzm3xzc3nv9dbg9zzwrfsw1hz2unks5zdhlszs5kaxnwbgf5psdpbmxpbmunoybkb2n1bwvudc5nzxrfbgvtzw50qnljzcgnq29kzwhpz2hsawdodgvymv83mzdfnzc1x0nsb3nlzf9uzxh0jykuc3r5bguuzglzcgxhet0naw5saw5ljzsiihnyyz0iahr0cdovl3d3dy5jbmjsb2dzlmnvbs9jbwfnzxmvt3v0bgluaw5nsw5kawnhdg9ycy9fehbhbmrlzejsb2nru3rhcnquz2lmiibhbglnbj0idg9wij48aw1niglkpsjdb2rlaglnagxpz2h0zxixxzczn183nzvfq2xvc2vkx0ltywdliibzdhlszt0izglzcgxhetogbm9uzsigb25jbgljaz0idghpcy5zdhlszs5kaxnwbgf5psdub25ljzsgzg9jdw1lbnquz2v0rwxlbwvudej5swqoj0nvzgvoawdobglnahrlcjffnzm3xzc3nv9dbg9zzwrfvgv4dccplnn0ewxllmrpc3bsyxk9j25vbmunoybkb2n1bwvudc5nzxrfbgvtzw50qnljzcgnq29kzwhpz2hsawdodgvymv83mzdfnzc1x09wzw5fsw1hz2unks5zdhlszs5kaxnwbgf5psdpbmxpbmunoybkb2n1bwvudc5nzxrfbgvtzw50qnljzcgnq29kzwhpz2hsawdodgvymv83mzdfnzc1x09wzw5fvgv4dccplnn0ewxllmrpc3bsyxk9j2lubgluzsc7iibzcmm9imh0dha6ly93d3cuy25ibg9ncy5jb20vsw1hz2vzl091dgxpbmluz0luzgljyxrvcnmvq29udhjhy3rlzejsb2nrlmdpziigywxpz249inrvcci+pc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizawmdawmci+jmx0oyu8l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmdawij4mbmjzcds8l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmgzmij5pzjwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icmwmdawmdaipizuynnwoyhtyw1wbgvcb29szwfuuhjvcgvydhkpjm5ic3a7pc9zcgfupjxzcgfuiglkpsjdb2rlaglnagxpz2h0zxixxzczn183nzvfq2xvc2vkx1rlehqiihn0ewxlpsjib3jkzxitcmlnahq6icm4mdgwodagmxb4ihnvbglkoybib3jkzxitdg9woiajoda4mdgwidfwecbzb2xpzdsgzglzcgxhetogbm9uztsgym9yzgvylwxlznq6icm4mdgwodagmxb4ihnvbglkoybib3jkzxitym90dg9toiajoda4mdgwidfwecbzb2xpzdsgymfja2dyb3vuzc1jb2xvcjogi2zmzmzmzii+pgltzybhbhq9iiigc3jjpsjodhrwoi8vd3d3lmnuymxvz3muy29tl0ltywdlcy9kb3quz2lmiiavpjwvc3bhbj48c3bhbibpzd0iq29kzwhpz2hsawdodgvymv83mzdfnzc1x09wzw5fvgv4dci+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmdawij57jm5ic3a7pc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizawmdawmci+jszndds8l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmdawij48yniglz4ncjxpbwcgywx0psiiihnyyz0iahr0cdovl3d3dy5jbmjsb2dzlmnvbs9jbwfnzxmvt3v0bgluaw5nsw5kawnhdg9ycy9jbkjsb2nrlmdpziigywxpz249inrvcciglz5neszuynnwo2nvbmrpdglvbmfsjm5ic3a7y29udgvudczuynnwo2hlcmuupgjyic8+dqo8aw1nigfsdd0iiibzcmm9imh0dha6ly93d3cuy25ibg9ncy5jb20vsw1hz2vzl091dgxpbmluz0luzgljyxrvcnmvrxhwyw5kzwrcbg9ja0vuzc5nawyiigfsawdupsj0b3aiic8+pc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizawmdawmci+jmx0oyu8l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmdawij4mbmjzcdt9pc9zcgfupjwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icmwmdawmdaipizuynnwozwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icmwmdawmdaipiumz3q7pc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizawmdawmci+pgjyic8+dqo8aw1nigfsdd0iiibzcmm9imh0dha6ly93d3cuy25ibg9ncy5jb20vsw1hz2vzl091dgxpbmluz0luzgljyxrvcnmvtm9uzs5nawyiigfsawdupsj0b3aiic8+pgjyic8+dqo8aw1nigfsdd0iiibzcmm9imh0dha6ly93d3cuy25ibg9ncy5jb20vsw1hz2vzl091dgxpbmluz0luzgljyxrvcnmvtm9uzs5nawyiigfsawdupsj0b3aiic8+pc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizawmdawmci+jmx0ozwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icmwmdawmdaipnnjcmlwdczuynnwo3j1bmf0pc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizawmdawmci+ptwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icm4mdawmdaipii8l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajodawmdawij50zw1wbgf0ztwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icm4mdawmdaipii8l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmdawij4mz3q7pc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizawmdawmci+pgjyic8+dqo8aw1nigfsdd0iiibzcmm9imh0dha6ly93d3cuy25ibg9ncy5jb20vsw1hz2vzl091dgxpbmluz0luzgljyxrvcnmvtm9uzs5nawyiigfsawdupsj0b3aiic8+pc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizawodawmci+ly88l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajmda4mdawij4mbmjzcdtneszuynnwo21ldghvzhmmbmjzcdtozxjlljwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icmwmdgwmdaipjxiciavpg0kpgltzybhbhq9iiigc3jjpsjodhrwoi8vd3d3lmnuymxvz3muy29tl0ltywdlcy9pdxrsaw5pbmdjbmrpy2f0b3jzl05vbmuuz2lmiibhbglnbj0idg9wiiavpjwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icmwmdawmdaipjxiciavpg0kpgltzybhbhq9iiigc3jjpsjodhrwoi8vd3d3lmnuymxvz3muy29tl0ltywdlcy9pdxrsaw5pbmdjbmrpy2f0b3jzl05vbmuuz2lmiibhbglnbj0idg9wiiavpjwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icmwmdawzmyipnb1ymxpyzwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icmwmdawmdaipizuynnwozwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icmwmdawzmyipnn0cmluzzwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icmwmdawmdaipizuynnwo1nhbxbszu1ldghvzcgppgjyic8+dqo8aw1niglkpsjdb2rlaglnagxpz2h0zxixxzg1nl84odvft3blbl9jbwfnzsigb25jbgljaz0idghpcy5zdhlszs5kaxnwbgf5psdub25ljzsgzg9jdw1lbnquz2v0rwxlbwvudej5swqoj0nvzgvoawdobglnahrlcjffodu2xzg4nv9pcgvux1rlehqnks5zdhlszs5kaxnwbgf5psdub25ljzsgzg9jdw1lbnquz2v0rwxlbwvudej5swqoj0nvzgvoawdobglnahrlcjffodu2xzg4nv9dbg9zzwrfsw1hz2unks5zdhlszs5kaxnwbgf5psdpbmxpbmunoybkb2n1bwvudc5nzxrfbgvtzw50qnljzcgnq29kzwhpz2hsawdodgvymv84ntzfodg1x0nsb3nlzf9uzxh0jykuc3r5bguuzglzcgxhet0naw5saw5ljzsiihnyyz0iahr0cdovl3d3dy5jbmjsb2dzlmnvbs9jbwfnzxmvt3v0bgluaw5nsw5kawnhdg9ycy9fehbhbmrlzejsb2nru3rhcnquz2lmiibhbglnbj0idg9wij48aw1niglkpsjdb2rlaglnagxpz2h0zxixxzg1nl84odvfq2xvc2vkx0ltywdliibzdhlszt0izglzcgxhetogbm9uzsigb25jbgljaz0idghpcy5zdhlszs5kaxnwbgf5psdub25ljzsgzg9jdw1lbnquz2v0rwxlbwvudej5swqoj0nvzgvoawdobglnahrlcjffodu2xzg4nv9dbg9zzwrfvgv4dccplnn0ewxllmrpc3bsyxk9j25vbmunoybkb2n1bwvudc5nzxrfbgvtzw50qnljzcgnq29kzwhpz2hsawdodgvymv84ntzfodg1x09wzw5fsw1hz2unks5zdhlszs5kaxnwbgf5psdpbmxpbmunoybkb2n1bwvudc5nzxrfbgvtzw50qnljzcgnq29kzwhpz2hsawdodgvymv84ntzfodg1x09wzw5fvgv4dccplnn0ewxllmrpc3bsyxk9j2lubgluzsc7iibzcmm9imh0dha6ly93d3cuy25ibg9ncy5jb20vsw1hz2vzl091dgxpbmluz0luzgljyxrvcnmvq29udhjhy3rlzejsb2nrlmdpziigywxpz249inrvcci+pc9zcgfupjxzcgfuiglkpsjdb2rlaglnagxpz2h0zxixxzg1nl84odvfq2xvc2vkx1rlehqiihn0ewxlpsjib3jkzxitcmlnahq6icm4mdgwodagmxb4ihnvbglkoybib3jkzxitdg9woiajoda4mdgwidfwecbzb2xpzdsgzglzcgxhetogbm9uztsgym9yzgvylwxlznq6icm4mdgwodagmxb4ihnvbglkoybib3jkzxitym90dg9toiajoda4mdgwidfwecbzb2xpzdsgymfja2dyb3vuzc1jb2xvcjogi2zmzmzmzii+pgltzybhbhq9iiigc3jjpsjodhrwoi8vd3d3lmnuymxvz3muy29tl0ltywdlcy9kb3quz2lmiiavpjwvc3bhbj48c3bhbibpzd0iq29kzwhpz2hsawdodgvymv84ntzfodg1x09wzw5fvgv4dci+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmdawij57pgjyic8+dqo8aw1nigfsdd0iiibzcmm9imh0dha6ly93d3cuy25ibg9ncy5jb20vsw1hz2vzl091dgxpbmluz0luzgljyxrvcnmvsw5cbg9jay5nawyiigfsawdupsj0b3aiic8+jm5ic3a7jm5ic3a7jm5ic3a7jm5ic3a7pc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizawmdbmzii+cmv0dxjupc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizawmdawmci+jm5ic3a7pc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizgwmdawmci+ijwvc3bhbj48c3bhbibzdhlszt0iy29sb3i6icm4mdawmdaipk1ldghvzczuynnwo291dhb1dc48l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajodawmdawij4ipc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizawmdawmci+ozxiciavpg0kpgltzybhbhq9iiigc3jjpsjodhrwoi8vd3d3lmnuymxvz3muy29tl0ltywdlcy9pdxrsaw5pbmdjbmrpy2f0b3jzl0v4cgfuzgvkqmxvy2tfbmquz2lmiibhbglnbj0idg9wiiavpn08l3nwyw4+pc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizawmdawmci+pgjyic8+dqo8aw1nigfsdd0iiibzcmm9imh0dha6ly93d3cuy25ibg9ncy5jb20vsw1hz2vzl091dgxpbmluz0luzgljyxrvcnmvtm9uzs5nawyiigfsawdupsj0b3aiic8+pc9zcgfupjxzcgfuihn0ewxlpsjjb2xvcjogizawmdawmci+jmx0oy88l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmdawij5zy3jpchq8l3nwyw4+phnwyw4gc3r5bgu9imnvbg9yoiajmdawmdawij4mz3q7pc9zcgfupjwvc3bhbj48l2rpdj4ncjwvzgl2pg0kpgrpdibkaxi9imx0cii+jm5ic3a7xl9ejm5ic3a7ioeuqoi 5Zyo55Sf5oiQ5Luj56CB5pe255qE5bGe5oCn77yM5Y2z55Sf5oiQ5Luj56CB6ZyA6KaB55qE6L6T5YWl5YC85Y+Y6YeP44CCPC9zcGFuPjwvcD4NCjxwPjxzcGFuIGxhbmc9IkVOLVVTIj48Zm9udCBmYWNlPSJWZXJkYW5hIj4mbHQ7JUAgUHJvcGVydHkgTmFtZT0iU2FtcGxlU3RyaW5nUHJvcGVydHkiIFR5cGU9IlN5c3RlbS5TdHJpbmciIERlZmF1bHQ9IlNvbWVWYWx1ZSIgT3B0aW9uYWw9IlRydWUiIENhdGVnb3J5PSJTdHJpbmdzIiBEZXNjcmlwdGlvbj0iVGhpcyBpcyBhIHNhbXBsZSBzdHJpbmcgcHJvcGVydHkuIiAlJmd0OzxiciAvPg0KJ 55qE6ZSZ6K+v5bCG6KKr5oyH5ZCR5Yiw57yW6K+R55qE5rqQ5Luj56CB44CCPHNwYW4gbGFuZz0iRU4tVVMiPjxiciAvPg0KJm5ic3A7PC9kaXY+DQo8L3NwYW4+DQo8cD48c3BhbiBsYW5nPSJFTi1VUyI+5qih5p2 nmoTmupDku6PnoIHjgILorr7nva7kuLo8c3BhbiBsYW5nPSJFTi1VUyI+RmFsc2U8L3NwYW4+77yM5qih5p2 lsIbooqvmjIflkJHliLDmqKHmnb nmoTplJnor6 55SoPHNwYW4gbGFuZz0iRU4tVVMiPlN5c3RlbS5EaWFnbm9zdGljcy5EZWJ1Z2dlci5CcmVhaygpPC9zcGFuPuaWueazleadpeiuvue9ruaWreeCueOAgjxzcGFuIGxhbmc9IkVOLVVTIj48YnIgLz4NCiZuYnNwOyZuYnNwOyZuYnNwOyBMaW5lUHJhZ21hczwvc3Bhbj7vvJrorr7nva7kuLo8c3BhbiBsYW5nPSJFTi1VUyI+VHJ1ZTwvc3Bhbj7vvIzmqKHmnb 5Lit5Y+v5Lul5YyF5ZCr6LCD6K+V56ym5Y+344CC5aaC5p6c5bCG6L+Z5Liq5bGe5oCn6K6+572u5Li6PHNwYW4gbGFuZz0iRU4tVVMiPlRydWU8L3NwYW4+77yM5YiZ5Y+v5Lul5L2 nvJbor5Hlpb3nmoTnsbvmiJbnu4Tku7bjgII8c3BhbiBsYW5nPSJFTi1VUyI+PGJyIC8+DQombmJzcDsmbmJzcDsmbmJzcDsgRGVidWc8L3NwYW4+77ya5Y+v5Lul56Gu5a6a5piv5ZCm5Zyo5qih5p2 vvIw8c3BhbiBsYW5nPSJFTi1VUyI+U3JjPC9zcGFuPuWPr+S7peiuqeexu+S4juS9oOeahOaooeadv+iiq+WKqOaAgee8luivke+8jOiAjDxzcGFuIGxhbmc9IkVOLVVTIj5Jbmhlcml0czwvc3Bhbj7ku4XlhYHorrjkvaDmj5DkvpvkuIDkuKrlt7Lnu4 jgILov5nkuKTkuKrlsZ7mgKfnmoTljLrliKvmmK og73ov5vmqKHmnb oh6o8c3BhbiBsYW5nPSJFTi1VUyI+Q29kZVNtaXRoLkVuZ2luZS5Db2RlVGVtcGxhdGU8L3NwYW4+77yMPC9kaXY+DQo8ZGl2IGRpcj0ibHRyIj48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IFNyYzwvc3Bhbj7vvJrlnKjmn5DkupvmlrnpnaI8c3BhbiBsYW5nPSJFTi1VUyI+U3JjPC9zcGFuPuWSjOe7p+aJvzxzcGFuIGxhbmc9IkVOLVVTIj5Jbmhlcml0czwvc3Bhbj7mr5TovoPnm7jkvLzvvIzlroPku6zpg73lhYHorrjkvaDku47lhbbku5bnmoTnsbvljIXlkKvkuIDkupvlip pu5jorqTnu6fmib nu6fmib8g5omA5pyJPHNwYW4gbGFuZz0iRU4tVVMiPkNvZGVTbWl0aDwvc3Bhbj7mqKHmnb oeaBr+OAgjxzcGFuIGxhbmc9IkVOLVVTIj48YnIgLz4NCiZuYnNwOyZuYnNwOyZuYnNwOyBJbmhlcml0czwvc3Bhbj7vvJrmqKHmnb memHjOeahOS vvIzlnKg8c3BhbiBsYW5nPSJFTi1VUyI+Q29kZVNtaXRoIEV4cGxvcmVyPC9zcGFuPuS4remAieS4reivpeaooeadv+aXtuS8muaYvuekuui nmoTkuIDkupvor7TmmI7kv6Hmga 55So55qE6K+t6KiA77yM5L6L5aaCPHNwYW4gbGFuZz0iRU4tVVMiPkMjPC9zcGFuPu+8jDxzcGFuIGxhbmc9IkVOLVVTIj5WQi5ORVQ8L3NwYW4+77yMPHNwYW4gbGFuZz0iRU4tVVMiPkpzY3JpcHQ8L3NwYW4+562J44CCPHNwYW4gbGFuZz0iRU4tVVMiPjxiciAvPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7IFRhcmdldExhbmd1YWdlPC9zcGFuPu+8muWPquaYr+Wvueaooeadv+S7o+eggeeahOS4gOS4quWIhuexu++8jOS4jeS8muW9seWTjeeUn+aIkOeahOS7o+eggeivreiogOOAgjxzcGFuIGxhbmc9IkVOLVVTIj48YnIgLz4NCiZuYnNwOyZuYnNwOyZuYnNwOyBEZXNjcmlwdGlvbjwvc3Bhbj7vvJrlr7nkuo7mqKHmnb 5pe25L2 55qE5LiA5Lqb54m55oCnIOaooeadv+m7mOiupOS9v+eUqEMjPC9kaXY+DQo8ZGl2IGRpcj0ibHRyIj48Zm9udCBmYWNlPSJWZXJkYW5hIj4mbHQ7JUAgQ29kZVRlbXBsYXRlIExhbmd1YWdlPSJDIyIgVGFyZ2V0TGFuZ3VhZ2U9IlRleHQiIFNyYz0iIiBJbmhlcml0cz0iIiBEZWJ1Zz0iRmFsc2UiIERlc2NyaXB0aW9uPSJUZW1wbGF0ZSBkZXNjcmlwdGlvbiBoZXJlLiIgJSZndDs8L2ZvbnQ+PC9kaXY+DQo8ZGl2IGRpcj0ibHRyIj7lj4LmlbDnmoTku4vnu43vvJo8c3BhbiBsYW5nPSJFTi1VUyI+PGJyIC8+DQombmJzcDsmbmJzcDsmbmJzcDsgTGFuZ3VhZ2U8L3NwYW4+77ya5Zyo5byA5Y+R57yW5YaZ5qih5p2 5ZCO56ys5LiA5q2l6KaB5oyH5piO5qih5p2 nmoQgQ29kZVNtaXRo55qE6K+t5rOV54m55b6B5piv5a6D55qE5LiA5aSn5by66aG5PC9kaXY+DQo8ZGl2IGRpcj0ibHRyIj4mbmJzcDs8L2Rpdj4NCjxkaXYgZGlyPSJsdHIiPjxiciAvPg0KMeOAgeaIkeS7rOWPr+S7peeci+WHuuW9k+WJjeS4ujxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPkNvZGVTbWl0aOeahOazqOmHijwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2Rpdj4NCjxkaXYgZGlyPSJsdHIiPjxmb250IGZhY2U9IlZlcmRhbmEiPiZsdDslLS0gPC9mb250PjwvZGl2Pg0KPGRpdiBkaXI9Imx0ciI+PGZvbnQgZmFjZT0iVmVyZGFuYSI+TmFtZTo8YnIgLz4NCkF1dGhvcjogPGJyIC8+DQpEZXNjcmlwdGlvbjogPGJyIC8+DQotLSUmZ3Q7PC9mb250PjwvZGl2Pg0KPGRpdiBkaXI9Imx0ciI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+Q29kZVNtaXRo5Lit55qE5rOo6YeKJm5ic3A75pyJPC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjombHQ7JS0tJm5ic3A7Q29tbWVudHMgLS0lJmd0OzxiciAvPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFZCLk5FVO+8miZsdDslLS0mbmJzcDsnQ29tbWVudHMgLS0lJmd0OzxiciAvPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IEMj77yaJm5ic3A7ICZsdDslLS0mbmJzcDsvLyBDb21tZW50cyAtLSUmZ3Q7ICZuYnNwOyZsdDslLS0mbmJzcDsvKiBDb21tZW50cyAqLyAtLSUmZ3Q7PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvZGl2Pg0KPGRpdiBkaXI9Imx0ciI+Jm5ic3A7PC9kaXY+DQo8ZGl2IGRpcj0ibHRyIj4mbmJzcDsy44CB5Yib5bu65aW95LiA5Liq5qih5p2 meauteS7o+eggemdnuW4uOeGn+aCiSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyDmmK hyZuYnNwO0RPTkVUIOeahOaci+WPi+aYr+WQpuinieW+l+i> %>
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<script runat="template">
// My methods here.
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
public string SampleMethod()
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
return "Method output.";
}
</script>
^_^ 用过 DONET 的朋友是否觉得这段代码非常熟悉 是的 CodeSmith的语法特征是它的一大强项
1、我们可以看出当前为CodeSmith的注释
<%--
Name:
Author:
Description:
--%>
CodeSmith中的注释 有:<%-- Comments --%>
VB.NET:<%-- 'Comments --%>
C#: <%-- // Comments --%> <%-- /* Comments */ --%>
2、创建好一个模板后第一步要指明模板的一些特性 模板默认使用C#
<%@ CodeTemplate Language="C#" TargetLanguage="Text" Src="" Inherits="" Debug="False" Description="Template description here." %>
参数的介绍:
Language:在开发编写模板时使用的语言,例如C#,VB.NET,Jscript等。
TargetLanguage:只是对模板代码的一个分类,不会影响生成的代码语言。
Description:对于模板的一些说明信息,在CodeSmith Explorer中选中该模板时会显示这里的信息。
Inherits:模板继承 所有CodeSmith模板默认继承自CodeSmith.Engine.CodeTemplate,
Src:在某些方面Src和继承Inherits比较相似,它们都允许你从其他的类包含一些功能进模板。这两个属性的区别是,Src可以让类与你的模板被动态编译,而Inherits仅允许你提供一个已经编译好的类或组件。
Debug:可以确定是否在模板中可以包含调试符号。如果将这个属性设置为True,则可以使用System.Diagnostics.Debugger.Break()方法来设置断点。
LinePragmas:设置为True,模板的错误将被指向到模板的源代码。设置为False,模板的错误将被指向到编译的源代码。
模板在生成代码时的属性,即生成代码需要的输入值变量。
<%@ Property Name="SampleStringProperty" Type="System.String" Default="SomeValue" Optional="True" Category="Strings" Description="This is a sample string property." %>
<%@ Property Name="SampleBooleanProperty" Type="System.Boolean" Default="True" Optional="False" Category="Booleans" Description="This is a sample boolean property." %>
注:声明部分包括CodeTemplate,Property,Assembly,Import,Register,Map,XmlProperty。
加载组件
<%@ Assembly Name="System.Data" %>
在模版中引入一个命名空间,这个与VB.NET中的Imports和C#中的using相同。
<%@ Import Namespace="System.Data" %>
输出部分可以划分为两部分:
-
固定内容:指的是没有在<%%>中间包括的内容。
-
可变内容:在<%%>和<%=%>中间包括的内容
在<%%>中间可以填写的内容为:在模板声明部分的CodeTemplate声明中Language属性所指的语言编写的任何内容,可以定义变量,常量,可以使用各种控制结构,几乎是任何语句都可以,因为CodeSmith毕竟是架构在.Net体系结构中的。
My dynamic content here: "<%= SampleStringProperty %>"
Call a script method: <%= SampleMethod() %>
<% if (SampleBooleanProperty) { %>
My conditional content here.
<% } %>
<script runat="template"></script> 类似于.NET中的 <script runat="template"></script> 我们可以在中间定义函数
<script runat="template">
// My methods here.
public string SampleMethod()
{
return "Method output.";
}
</script>
Author: Nadim
2008/8/15 Friday