今天网上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模板对于生成基于Ascii语言文件的强大威力:
|
模板生成代码比较简单,就不在这里多讲述了,只是拿来展示一下CodeSmith模板对于生成基于Ascii语言文件的强大威力:
|
内容比较少今天就到这里。
|
内容比较少,今天就到这里。
本文转自 破狼 51CTO博客,原文链接:http://blog.51cto.com/whitewolfblog/834420,如需转载请自行联系原作者