CodeSmith实用技巧(九):重载Render方法来控制输出

在CodeSmith中,CodeTemplate.Render方法是在模版执行完成进行模版输出时执行,你可以通过重载CodeTemplate.Render方法来修改CodeSmith输出时的事件处理。例如:你可以修改模版输出时的方式来代替现在默认的方式,下面这段代码展示了在保持CodeSmith默认的窗口显示的同时,把结果输出到两个不同的文件。

1None.gif<%@ CodeTemplate Language="C#" TargetLanguage="Text" Description="AddTextWriter Demonstration." %> <script language="JavaScript" src="http://book.book560.com/ads/ads728x15.js" type="text/javascript"></script>
2None.gif<%@ Import Namespace="System.IO" %>
3None.gifThis template demonstrates using the AddTextWriter method
4None.gifto output the template results to multiple locations concurrently.
5None.gif<script runat="template">
6None.gifpublic override void Render(TextWriter writer)
7ExpandedBlockStart.gifContractedBlock.gifdot.gif{
8InBlock.gif    StreamWriter fileWriter1 = new StreamWriter(@"C:\test1.txt", true);
9InBlock.gif this.Response.AddTextWriter(fileWriter1);
10InBlock.gif
11InBlock.gif    StreamWriter fileWriter2 = new StreamWriter(@"C:\test2.txt", true);
12InBlock.gif this.Response.AddTextWriter(fileWriter2);
13InBlock.gif
14InBlock.gif base.Render(writer);
15InBlock.gif
16InBlock.gif    fileWriter1.Close();
17InBlock.gif    fileWriter2.Close();
18ExpandedBlockEnd.gif} <script language="JavaScript" src="http://book.book560.com/ads/ads728x15.js" type="text/javascript"></script>
19None.gif</script>

注意不能忘了base.Render(writer);这句话,否则你将不能获得默认的输出。当重载CodeTemplate.Render方法时,你也可
以访问TextWriter,也就是说你也可以直接添加其它的附属信息到模版输出的内容中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值