Home >Database >Mysql Tutorial >CodeSmith实用技巧(五):利用继承生成可变化的代码

CodeSmith实用技巧(五):利用继承生成可变化的代码

WBOY
WBOYOriginal
2016-06-07 15:10:521249browse

用 CodeSmith 生成可变化的代码,其实是先利用 CodeSmith 生成一个基类,然后自定义其它类继承于该类。当我们重新生成基类时 CodeSmith 不要接触继承的子类中的代码。看下面的这段模版脚本: % @CodeTemplateLanguage = " C# " TargetLanguage = " C# " Desc

 CodeSmith生成可变化的代码,其实是先利用CodeSmith生成一个基类,然后自定义其它类继承于该类。当我们重新生成基类时CodeSmith不要接触继承的子类中的代码。看下面的这段模版脚本:

CodeSmith实用技巧(五):利用继承生成可变化的代码@ CodeTemplate Language="C#" TargetLanguage="C#" Description="Base class generator." %>
CodeSmith实用技巧(五):利用继承生成可变化的代码
@ Property Name="ClassName" Type="System.String" Description="Name of the class." %>
CodeSmith实用技巧(五):利用继承生成可变化的代码
@ Property Name="ConstructorParameterName" Type="System.String" Description="Constructor parameter name." %>
CodeSmith实用技巧(五):利用继承生成可变化的代码
@ Property Name="ConstructorParameterType" Type="System.String" Description="Data type of the constructor parameter." %>
CodeSmith实用技巧(五):利用继承生成可变化的代码
class  ClassName %>
CodeSmith实用技巧(五):利用继承生成可变化的代码CodeSmith实用技巧(五):利用继承生成可变化的代码
CodeSmith实用技巧(五):利用继承生成可变化的代码{
CodeSmith实用技巧(五):利用继承生成可变化的代码    
 ConstructorParameterType %> m_ ConstructorParameterName %>;
CodeSmith实用技巧(五):利用继承生成可变化的代码 
CodeSmith实用技巧(五):利用继承生成可变化的代码    
public  ClassName %>( ConstructorParameterType %>  ConstructorParameterName %>)
CodeSmith实用技巧(五):利用继承生成可变化的代码CodeSmith实用技巧(五):利用继承生成可变化的代码    
CodeSmith实用技巧(五):利用继承生成可变化的代码{
CodeSmith实用技巧(五):利用继承生成可变化的代码        m_
 ConstructorParameterName %> =  ConstructorParameterName %>
CodeSmith实用技巧(五):利用继承生成可变化的代码    }

CodeSmith实用技巧(五):利用继承生成可变化的代码}

执行该模版并输入如下数据:

CodeSmith实用技巧(五):利用继承生成可变化的代码

该模版生成的代码可能如下:

 1CodeSmith实用技巧(五):利用继承生成可变化的代码class Account
 2CodeSmith实用技巧(五):利用继承生成可变化的代码CodeSmith实用技巧(五):利用继承生成可变化的代码CodeSmith实用技巧(五):利用继承生成可变化的代码{
 3CodeSmith实用技巧(五):利用继承生成可变化的代码    int m_balance;
 4CodeSmith实用技巧(五):利用继承生成可变化的代码 
 5CodeSmith实用技巧(五):利用继承生成可变化的代码    public Account(int balance)
 6CodeSmith实用技巧(五):利用继承生成可变化的代码CodeSmith实用技巧(五):利用继承生成可变化的代码    CodeSmith实用技巧(五):利用继承生成可变化的代码{
 7CodeSmith实用技巧(五):利用继承生成可变化的代码        m_balance = balance
 8CodeSmith实用技巧(五):利用继承生成可变化的代码    }

 9CodeSmith实用技巧(五):利用继承生成可变化的代码
10CodeSmith实用技巧(五):利用继承生成可变化的代码}

11CodeSmith实用技巧(五):利用继承生成可变化的代码
12CodeSmith实用技巧(五):利用继承生成可变化的代码

把生成的文件保存为Account.cs文件。这时我们可以编写第二个类生成Check.cs文件代码:

1CodeSmith实用技巧(五):利用继承生成可变化的代码class Checking : Account
2CodeSmith实用技巧(五):利用继承生成可变化的代码CodeSmith实用技巧(五):利用继承生成可变化的代码CodeSmith实用技巧(五):利用继承生成可变化的代码{
3CodeSmith实用技巧(五):利用继承生成可变化的代码    public Checking : base(0)
4CodeSmith实用技巧(五):利用继承生成可变化的代码CodeSmith实用技巧(五):利用继承生成可变化的代码    CodeSmith实用技巧(五):利用继承生成可变化的代码{
5CodeSmith实用技巧(五):利用继承生成可变化的代码    }

6CodeSmith实用技巧(五):利用继承生成可变化的代码}

现在如果需要改变Account Balance的类型为浮点型,我们只需要改变ConstructorParameterType属性为float,并重新生成Account.cs文件即可而不需要直接在Account.cs中进行手工修改,并且不需要修改Check.cs文件的任何代码。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn