TerryLee's Tech Space
TerryLee技术专栏
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 491 文章- 3 评论- 15419
CodeSmith实用技巧(九):重载Render方法来控制输出
在
CodeSmith
中,
CodeTemplate.Render
方法是在模版执行完成进行模版输出时执行,你可以通过重载
CodeTemplate.Render
方法来修改
CodeSmith
输出时的事件处理。例如:你可以修改模版输出时的方式来代替现在默认的方式,下面这段代码展示了在保持
CodeSmith
默认的窗口显示的同时,把结果输出到两个不同的文件。
1
<%
@ CodeTemplate Language
=
"
C#
"
TargetLanguage
=
"
Text
"
Description
=
"
AddTextWriter Demonstration.
"
%>
2
<%
@ Import Namespace
=
"
System.IO
"
%>
3
This template demonstrates
using
the AddTextWriter method
4
to output the template results to multiple locations concurrently.
5
<
script runat
=
"
template
"
>
6
public
override
void
Render(TextWriter writer)
7
{
8
StreamWriter fileWriter1
=
new
StreamWriter(
@"
C:\test1.txt
"
,
true
);
9
this
.Response.AddTextWriter(fileWriter1);
10
11
StreamWriter fileWriter2
=
new
StreamWriter(
@"
C:\test2.txt
"
,
true
);
12
this
.Response.AddTextWriter(fileWriter2);
13
14
base
.Render(writer);
15
16
fileWriter1.Close();
17
fileWriter2.Close();
18
}
19
</
script
>
注意不能忘了
base.Render(writer);
这句话,否则你将不能获得默认的输出。当重载
CodeTemplate.Render
方法时,你也可
以访问
TextWriter
,也就是说你也可以直接添加其它的附属信息到模版输出的内容中。
作者:
TerryLee
出处:
http://terrylee.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
0
0
0
(请您对文章做出评价)
«
上一篇:
CodeSmith实用技巧(八):生成的代码输出到文件中
»
下一篇:
CodeSmith实用技巧(十):通过编程执行模版
posted @ 2005-12-28 08:46
TerryLee
阅读(2222)
评论(2)
编辑
收藏
所属分类:
[13] 代码生成
发表评论
1726108
回复
引用
查看
#1楼
2009-10-14 19:18 |
to be or not
怎么用这个方法 举个例子 谢谢!
回复
引用
查看
#2楼
2009-12-16 21:26 |
BenBoy
这个方法很好用。但是,有没有办法吧结果的前半部分输出到文档1,后半部分输出到文档2呢。而不是吧结果全部相同的输出到文档1、文档2.我想把我的结果分成2部分,分别保存在2个文档中。不知道有没办法实现,能实现的话就省掉了新建文档,复制、粘贴,我要多次生成结果,这也是个很大的工作量啊。请指教。
注册用户登录后才能发表评论,请
登录
或
注册
。
博客园首页
IT新闻
闪存
知识库
招聘
找优秀程序员,就在博客园
IT新闻
:
·
地盘被HTML5蚕食 Adobe Flash前途堪忧
·
微软云计算版Exchange默认邮箱容量增至25GB
·
微软:早期Bing概念设计概览
·
梅德韦杰夫总统宣布俄罗斯建本国“硅谷”
·
闾丘露薇:参观两间“小”公司
每天10分钟,轻松学英语
专题:
Android
iPad
jQuery
Windows 7
推荐职位
:
网站导航:
博客园首页
IT新闻
个人主页
闪存
程序员招聘
社区
博问
网摘
China-pub 计算机图书网上专卖店!6.5万品种2-8折!
China-Pub 计算机绝版图书按需印刷服务
相关搜索:
[13]代码生成
在知识库中查看:
CodeSmith实用技巧(九):重载Render方法来控制输出
公告
个人简介
网名:TerryLee
本名:李会军
位置:中国 北京
请大家发邮件至
关注我
我的著作
官网:
《Silverlight 2完美征程》
我在说
follow me on Twitter
MVP配置
MVP配置
个人主页
版权声明
本站采用
创作共用
许可 署名,非商业
绿色通道
1.
一步一步学Silverlight 2系列
2.
.NET设计模式系列文章
3.
ASP.NET AJAX入门系列
4.
Castle开发系列文章
5.
Enterprise Library系列
博客园.NET频道
我的主页
个人资料
我的闪存
发短消息
搜索
随笔分类
[01] .NET大本营(50)
(rss)
[02] 探微知著CLR
(rss)
[03] 银光点亮世界(62)
(rss)
[04] WCF后传(17)
(rss)
[05] 架构与设计(24)
(rss)
[06] LINQ之美(4)
(rss)
[07] AJAX风云(15)
(rss)
[08] Web开发(66)
(rss)
[09] 依赖注入(14)
(rss)
[10] 模式与实践(68)
(rss)
[11] 数据持久(19)
(rss)
[12] 开源世界(35)
(rss)
[13] 代码生成(23)
(rss)
[14] 测试与重构(3)
(rss)
[15] 工作流基础
(rss)
[16] 技术曲苑杂坛(1)
(rss)
[17] 并行编程(1)
(rss)
[18] 动态语言(4)
(rss)
[19] 写作生涯(2)
(rss)
[20] 推荐系列(32)
(rss)
[21] 数据库相关(18)
(rss)
[30] 前沿报道(28)
(rss)
[31] 项目管理(3)
(rss)
[32] 我点我评(2)
(rss)
[33] 我思我考(13)
(rss)
[34] 社区活动(9)
(rss)
[35] 东拉西扯(37)
(rss)
随笔档案
2009年8月 (1)
2009年5月 (1)
2009年4月 (3)
2009年1月 (2)
2008年12月 (4)
2008年11月 (10)
2008年10月 (12)
2008年9月 (3)
2008年8月 (5)
2008年7月 (13)
2008年6月 (10)
2008年3月 (41)
2008年2月 (5)
2008年1月 (13)
2007年12月 (15)
2007年11月 (7)
2007年7月 (3)
2007年4月 (2)
2007年3月 (4)
2007年2月 (2)
2007年1月 (6)
2006年12月 (18)
2006年11月 (32)
2006年10月 (35)
2006年9月 (19)
2006年8月 (16)
2006年7月 (23)
2006年6月 (11)
2006年5月 (13)
2006年4月 (24)
2006年3月 (17)
2006年2月 (13)
2006年1月 (13)
2005年12月 (38)
2005年11月 (20)
2005年10月 (27)
2005年9月 (10)
个人站点
TerryLee @ 51CTO
(rss)
我在51CTO的镜像
TerryLee @ ASP.NET
(rss)
我在ASP.NET网站
TerryLee @ IT168
(rss)
我在IT168的镜像
TerryLee @ 博客堂
(rss)
我在博客堂的一片天地
个人主页
我的好友
Aero
(rss)
anchky
(rss)
Anytao
(rss)
Autumoon
(rss)
DDL
(rss)
Dflying Chen
(rss)
Dudu
(rss)
Fantasy Soft
(rss)
idior
(rss)
JesseQu
(rss)
Jillzhang
(rss)
kid-li
(rss)
luking
(rss)
MichelleHu
(rss)
PrideRock的专栏
(rss)
RogerTong
(rss)
Sunmoonfire
(rss)
Teddy
(rss)
wayfarer
(rss)
阿不
(rss)
博文视点官方博客
(rss)
大人物中的小人物
(rss)
丁学
(rss)
怪怪
(rss)
蜡笔小巢
(rss)
蜡人张
(rss)
老赵
(rss)
李茹
(rss)
卢彦
(rss)
吕震宇
(rss)
罗炳桥
(rss)
难得一蠢
(rss)
鸟食轩
(rss)
努力学习的熊
(rss)
螃蟹
(rss)
水晶心情
(rss)
小寒
(rss)
雁儿飞飞
(rss)
杨正祎
(rss)
源码工作室
(rss)
张大磊
(rss)
张莹
周银辉
(rss)
积分与排名
积分 - 5389479
排名 - 3
阅读排行榜
1. .NET设计模式系列文章(251542)
2. 强烈推荐:240多个jQuery插件(170271)
3. ASP.NET AJAX入门系列(165753)
4. 一步一步学Silverlight 2系列文章(99180)
5. ASP.NET AJAX入门系列(2):使用ScriptManager控件(90777)
6. Castle 开发系列文章(90180)
7. Enterprise Library系列文章回顾与总结(89354)
8. .NET设计模式(2):单件模式(Singleton Pattern)(89136)
9. 今天下午真郁闷……(79776)
10. .NET设计模式(3):抽象工厂模式(Abstract Factory)(76947)
11. ASP.NET AJAX入门系列(1):概述(69415)
12. 一步一步学Silverlight 2系列(1):创建一个基本的Silverlight应用(51973)
13. .NET设计模式(5):工厂方法模式(Factory Method)(49111)
14. ASP.NET AJAX入门系列(4):使用UpdatePanel控件(一)(46254)
15. Castle ActiveRecord学习实践(1):快速入门指南(45889)
16. .NET设计模式(1):开篇(37619)
17. Enterprise Library Step By Step系列(一):配置应用程序块——入门篇(36937)
18. .NET设计模式(4):建造者模式(Builder Pattern)(35711)
19. CodeSmith开发系列资料总结(31225)
20. .NET开源项目介绍及资源推荐:序(30800)
21. 一步一步学Silverlight 2系列(2):基本控件(30586)
22. ASP.NET AJAX入门系列(3):使用ScriptManagerProxy控件(29551)
23. .NET设计模式(19):观察者模式(Observer Pattern)(29440)
24. ASP.NET AJAX入门系列(5):使用UpdatePanel控件(二)(28485)
25. Atlas学习手记系列(28420)
评论排行榜
1. 如何用SQLDMO在ASP.NET页面下实现数据库的备份与恢复(395)
2. .NET设计模式系列文章(359)
3. 不得不为LINQ说几句话,驳“LINQ已死”论(320)
4. 一步一步学Silverlight 2系列文章(249)
5. CodeSmith3.0开发资料下载(233)
6. .NET设计模式(3):抽象工厂模式(Abstract Factory)(216)
7. 新版设计模式手册[C#]下载(216)
8. ASP.NET AJAX入门系列(2):使用ScriptManager控件(179)
9. 强烈推荐:240多个jQuery插件(172)
10. Castle ActiveRecord学习实践(1):快速入门指南(168)
11. ASP.NET AJAX入门系列(168)
12. Castle 开发系列文章(164)
13. .NET设计模式(19):观察者模式(Observer Pattern)(162)
14. Enterprise Library系列文章回顾与总结(161)
15. .NET设计模式(5):工厂方法模式(Factory Method)(159)
16. .NET设计模式(2):单件模式(Singleton Pattern)(154)
17. 天津.NET俱乐部成立了!(146)
18. ASP.NET AJAX入门系列(4):使用UpdatePanel控件(一)(133)
19. 基于模板引擎的代码生成器Smart Code预览(130)
20. 一步一步学Silverlight 2系列(1):创建一个基本的Silverlight应用(125)