CodeSmith 实例2

 

FileNameEditor类给我们提供了在CodeSmith属性面板中弹出打开或保存文件对话框的方式,在使用时,首先在模版中得添加对程序集CodeSmith.CustomProperties的引用。然后就可以在模版中定义一个属性来使用FileNameEditor

 

 

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

22
23 </ script >
24
25

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

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

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

 

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

21
22

弹出的对话框如下所示:

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

 

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

11 </ script >
12
13

FileNameEditor重要方法和属性介绍:

公共方法:

名称

描述

EditValue

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

GetEditStyle

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值