今天网上Google了一下,关于CodeSmith的资料已经很全了,其中有TerryLee 和努力学习的小熊 两位大牛的很详尽,所以我也不准备把CodeSmith讲的很细致了,如果是新手学习者可以参考上面两位大牛的CodeSmith文章,CodeSmith的语法与ASP语法接近,语言可以选择我们的c#,所以学习起来很轻松。今天就写一个简单的文件目录树结构的递归模板。
Template Code:
![]()
代码
<% @ CodeTemplate Language = " C# " TargetLanguage = " Text " Src = "" Inherits = "" Debug = " False "
Description = " Template description here. " %>
<% @ Assembly Name = " System.Data " %>
<% @ Import Namespace = " System.Data " %>
<% @ Assembly Name = " System " %>
<% @ Import Namespace = " System.IO " %>
-----------------------------------------------------------------
-- Date Created: <%= DateTime.Now.ToLongDateString() %>
-- Createdy: B Generated by Wolf
-----------------------------------------------------------------
< script runat = " template " >
private string path;
[Editor( typeof (System.Windows.Forms.Design.FolderNameEditor),
typeof (System.Drawing.Design.UITypeEditor))]
public string Path
{
get { return this .path;}
set { this .path = value;}
}
public void GetFolderString( string fload, string indexStr)
{
if ( string .IsNullOrEmpty(fload))
throw new System.ArgumentNullException( " fload " );
Response.WriteLine(indexStr + fload);
indexStr += " ---- " ;
if (System.IO.Directory.Exists(fload))
{
string [] childfolder = System.IO.Directory.GetDirectories(fload);
string [] childfile = System.IO.Directory.GetFiles(fload);
foreach ( string item in childfolder)
{
this .GetFolderString(item,indexStr);
}
foreach ( string item in childfile)
{
this .GetFolderString(item,indexStr);
}
}
}
public void Start()
{
this .GetFolderString( this .path, "" );
}
</ script >
<% this .Start(); %>
模板生成代码比较简单,就不在这里多讲述了,只是拿来展示一下CodeSmith模板对于生成基于Ascii语言文件的强大威力:
![]()
内容比较少今天就到这里。
CodeSmith模板引擎系列二--文件目录树
最新推荐文章于 2024-06-19 19:42:14 发布