zoukankan      html  css  js  c++  java
  • 关于CodeSmith主模板与子模板同时从一个基类继承后的参数传值问题(提供模板下载)

    标题好像有点绕啊,

    下面说一下场景吧,我有两个CodeSmith的模板Entity.cst与AllEntity.cst文件,它们同时都继承自CommonSqlCode.cs这个文件

    代码如下:

    <%@ CodeTemplate Language="C#" ResponseEncoding="UTF-8" Src="CommonSqlCode.cs" TargetLanguage="C#" Inherits="XH.CommonSqlCode" Debug="False" Description="Template description here." %>

    Entity.cst用来生成单个的实体

    AllEntity.cst调用Entity.cst实现批量生成实体

    在CommonSqlCode.cs文件中我定义了一个公共的属性NameSpace.

    开始我的理解是:运行AllEntity.cst的话,只发在AllEntity.cst中给NameSpace赋一次值,在Entity.cst中就可以访问到AllEntity.cst中设置的值,因为CommonSqlCode.cs是共用的嘛.

    实际的结果是:Entity.cst中是没法取到AllEntity.cst中给NameSpace设置的值,必须在AllEnity.cst调用Entity.cst的时候,显示的传给Entity.cst.

    可以这样写this.CopyPropertiesTo(subTemplate)或subTemplate.SetProperty("NameSpace", this.NameSpace)

    呵,不知道是不是只有我一个人这样理解去了.

    最后发一个我这几天学习CodeSmith写的一个类似Petshop结构的模板,除了UI层,其它基本上都有

     https://files.cnblogs.com/builderman/codesmith_petshop_demo.rar

    解压后在Template目录中有所有的模板,

    可以直接运行ALL.cst来生成所有的代码,

    也可以运行ALL开头的其它模板来生成某一部分文件,

    或者运行非ALL开头的模板来生成单个的代码

    直接打开解决方案可以查看用模板生成的代码

    欢迎大家批评指正

  • 相关阅读:
    oracle11g expdp/impdp数据库
    SqlServer触发器
    tomcat8.5.20配置https
    oracle常用函数积累
    Eclipse 搭建tomcat+动态项目完整版
    Windows7下ftp服务器
    Orcle定时生成表数据作业
    Oracle将一列值逗号拼接wm_concat函数
    Oracle表空间 ORA-01653:
    node+mongodb+ionic+cordova
  • 原文地址:https://www.cnblogs.com/builderman/p/1690006.html
Copyright © 2011-2022 走看看