CodeSmith实用技巧(二):使用FileNameEditor

FileNameEditor类给我们提供了在CodeSmith属性面板中弹出打开或保存文件对话框的方式,在使用时,首先在模版中得添加对程序集CodeSmith.CustomProperties的引用。然后就可以在模版中定义一个属性来使用FileNameEditor<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 1 None.gif < script runat = " template " >
 2 None.gif
 3 None.gif private   string  _userFileName  =   @" c:\temp\test.txt " ;
 4 None.gif
 5 None.gif 
 6 None.gif
 7 None.gif[Editor( typeof (FileNameEditor),  typeof (System.Drawing.Design.UITypeEditor)),
 8 None.gif
 9 None.gifCategory( " Custom " ), Description( " User selected file. " )]
10 None.gif
11 None.gif 
12 None.gif
13 None.gif public   string  UserFileName
14 None.gif
15 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
16InBlock.gif
17ExpandedSubBlockStart.gifContractedSubBlock.gif      get dot.gif{return _userFileName;}
18InBlock.gif
19ExpandedSubBlockStart.gifContractedSubBlock.gif      set dot.gif{_userFileName= value;}
20InBlock.gif
21ExpandedBlockEnd.gif}

22 None.gif
23 None.gif </ script >
24 None.gif
25 None.gif

当我们执行该模版时,在属性面板中同样显示为一个按钮:

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />PIC053.JPG

单击该按钮,弹出一个保存文件的对话框:

PIC054.JPG

我们也可以通过FileDialogAttribute来自定义弹出的对话框,修改模版为:

 1 None.gif private   string  _openFileName  =   @" c:\temp\test.txt " ;
 2 None.gif
 3 None.gif
 4 None.gif[Editor( typeof (FileNameEditor),  typeof (System.Drawing.Design.UITypeEditor)),
 5 None.gif
 6 None.gifFileDialogAttribute(FileDialogType.Open, Title = " Select Input File " ),
 7 None.gif
 8 None.gifCategory( " Custom " ), Description( " User selected file. " )]
 9 None.gif
10 None.gif 
11 None.gif
12 None.gif public   string  OpenFileName
13 None.gif
14 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
15InBlock.gif
16ExpandedSubBlockStart.gifContractedSubBlock.gif      get dot.gif{return _openFileName;}
17InBlock.gif
18ExpandedSubBlockStart.gifContractedSubBlock.gif      set dot.gif{_openFileName= value;}
19InBlock.gif
20ExpandedBlockEnd.gif}

21 None.gif
22 None.gif

弹出的对话框如下所示:

PIC055.JPG

当我们想用一个文件夹的名称来代替文件时,可以使用FolderNameEditor类。

 1 None.gif <% @ Assembly Name = " System.Design "   %>
 2 None.gif < script runat = " template " >
 3 None.gif private   string  _outputDirectory  =   @" c:\temp " ;
 4 None.gif[Editor( typeof (System.Windows.Forms.Design.FolderNameEditor),  typeof (System.Drawing.Design.UITypeEditor)),
 5 None.gifCategory( " Custom " ), Description( " Output directory. " )]
 6 None.gif public   string  OutputDirectory
 7 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
 8ExpandedSubBlockStart.gifContractedSubBlock.gif       get dot.gif{return _outputDirectory;}
 9ExpandedSubBlockStart.gifContractedSubBlock.gif       set dot.gif{_outputDirectory= value;}
10ExpandedBlockEnd.gif}

11 None.gif </ script >
12 None.gif
13 None.gif

FileNameEditor重要方法和属性介绍:

公共方法:

名称

描述

EditValue

使用由 GetEditStyle 方法提供的编辑器样式编辑指定的对象

GetEditStyle

获取 EditValue 方法所使用的编辑样式

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值