首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

CodeSmith 应用教程(12) 使用主从代码模板

2013-01-23 
CodeSmith 使用教程(12) 使用主从代码模板在前面的教程CodeSmith 使用教程(3): 自动生成Yii Framework Act

CodeSmith 使用教程(12) 使用主从代码模板

在前面的教程CodeSmith 使用教程(3): 自动生成Yii Framework ActiveRecord 我们使用了主,从模板来实现了从数据库为Yii Framework生成多个表的ActiveRecord类定义,中CodeSmith项目中通过主模板和从模板的配合可以实现复杂的代码生成过程,主模板和从模板的关系有点类似主程序和子函数的关系。使用主-从模板的基本步骤如下:

  • 定义从模板,从模板可以定义属性
  • 定义主模板,中主模板中如果要使用从模板,首先需要在主模板中注册从模板,主模板中也也可以定义属性,主模板和从模板中的属性可以通过定义“合并”模式构造最终模板所定义的属性集合。
  • 调用主模板,设置主模板和从模板所需的属性生成所需代码

    注册子模板

    Template: 子模板文件名
    MergeProperties: 是否需要把子模板中定义的属性:“合并”到主模板中。缺省为False
    ExcludeProperties: 如果子模板的属性合并到主模板中时需要排除的属性列表,以逗号分隔。

    子模板复制主模板中的属性
    MergeProperties=”True” 可以把从模板中的属性合并到主模板中,如果从模板需要引用主模板的属性,比如主模板中定义了服务器地址,在多个子模板中都需要引用这个属性,此时可以通过复制父模板属性CopyPropertiesTo来实现:

    // instantiate the sub-template.Header header = this.Create<Header>();// render the sub-template to a separate file.header.RenderToFile("Somefile.txt");

    具体的例子可以参见CodeSmith 使用教程(3): 自动生成Yii Framework ActiveRecord

热点排行