星空电竞官网

动易模板中心 | 动易技术中心 | 无障碍阅读| 售前服务:4008-300-618
目录
目录X

用CodeSmith生成自定义模板

  当转换成技术应用程度时,说到底否是编程数值远程点击源代码怎么用或者转换成自确定实体化型自确定结合,你发展定期可以重复使用做完部分不同的重任。最近的用CodeSmith编程了菜单栏层到数值库远程点击层的模版并且在转换成贮存的过程 的模版,感觉到CodeSmith极为还不错,不止有助于改善精英团队的业务效应,自功做完那方面相对而言平淡无奇的重任,另一方面有助于让亲们的源代码怎么用长期保持一段的相符性和规范起来性。今天详实的介绍以下怎样才能转换成自确定模版(以自确定实体化型为列),以充当总结结尾,也盼望对您有所作为幫助。 首先步是使用微信小程序建筑模板图片头,声明公告微信小程序建筑模板图片的文学语言表达、受众文学语言表达已经概诉微信小程序建筑模板图片说明书:
以下是代码片段:
<%@ CodeTemplate Language="C#" TargetLanguage="Text" Src="" Inherits="" Debug="False" Description="Template description here." %>

列出这时一种C#语言表达方式的样例。CodeSmith 收录一种名里 SchemaExplorer 的特殊化的程度集,能作来从表、内存全过程或基本上什么其余 SQL Server群体制成样例。后面接入该数集和排列顺序余地:
以下是代码片段:
<%@ Assembly Name="System.Data" %>
<%@ Import Namespace="System.Data" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>

第二步,属性声明,在这里可声明将在模板每次运行时指定的属性,以方便设置一系列需要传入的参数:

以下是代码片段:
<%@ Property Name="DataBase" Type="SchemaExplorer.DatabaseSchema" Category="Context" Description="aaa" %>

如顶端一样,在进行源代码是什么生产时,在CodeSmith Explorer填入择微信小程序模板后生产源代码是什么的页面中,变数的品牌为DataBase,分类是SchemaExplorer.DatabaseSchema,等级分类是Context,当使用者全选在这个的特性时对於的特性的叙说Description。
以下是代码片段:
<%@ Property Name="TableName" Type="System.String" Default="" Optional="False" Category="Strings" Description="bbb" %>
<%@ Property Name="NameSpace" Type="System.String" Default="" Optional="True" Category="Strings" Description="cccc" %>

如前面如下,数组的种类为TableName,NameSpace,类型、是String,专业类别是Strings,当玩家中该屬性时相对于屬性的讲述Description。
以下是代码片段:
<%@ Property Name="Author" Type="System.String" Default="Author" Optional="False" Category="" Description="??" %>
<%@ Property Name="Description" Type="System.String" Default="Description" Optional="False" Category="" Description="?????" %>

如上文一样,局部变量的名称大全为Author,Description,类型的是String,等级分类为空(界面显示为“杂项”),当粉丝选择“一个状态时我们对状态的简述Description。 相关抗性表层显示信息如下如下图所示图如下图所示:

第三步,编写C#语言模板类部分代码。CodeSmith范本游戏脚本各式:

以下是代码片段:
CodeTemplateRule rule=new CodeTemplateRule();

public class CodeTemplateRule
{

典例化类CodeTemplateRule。
以下是代码片段:
public ColumnSchemaCollection GetColumnCollection(DatabaseSchema dataBase,string tableName)
{
TableSchemaCollection tables = new TableSchemaCollection(dataBase.Tables);
ColumnSchemaCollection columns=null;
for(int i=0;i {
if(tables[i].Name.ToUpper()==tableName.ToUpper())
{
TableSchema ts=tables[i];
columns=new ColumnSchemaCollection(ts.Columns);
}
}
return columns;
}

数学函数公式反应:手机输入资料库名和表名,得以列真子集个人信息。用实物数学函数公式ColumnSchemaCollection能够得以某张表的所有的列的真子集。
以下是代码片段:
public string GetTableName(string tableName)
{
int i=tableName.IndexOf("_");
return tableName.Substring(i+1,tableName.Length-(i+1));
}

数学函数能力:对投入的表名模式化,取得擦掉前缀的表名,如PE_User,返还User。
以下是代码片段:
public string GetType(ColumnSchema column)
{
if (column.Name.EndsWith("TypeCode")) return column.Name;

switch (column.DataType)
{
case DbType.AnsiString: return "string";
case DbType.AnsiStringFixedLength: return "string";
case DbType.Binary: return "byte[]";
case DbType.Boolean: return "bool";
case DbType.Byte: return "int";
case DbType.Currency: return "decimal";
case DbType.Date: return "DateTime";
case DbType.DateTime: return "DateTime";
case DbType.Decimal: return "decimal";
case DbType.Double: return "double";
case DbType.Guid: return "Guid";
case DbType.Int16: return "short";
case DbType.Int32: return "int";
case DbType.Int64: return "long";
case DbType.Object: return "object";
case DbType.SByte: return "sbyte";
case DbType.Single: return "float";
case DbType.String: return "string";
case DbType.StringFixedLength: return "string";
case DbType.Time: return "TimeSpan";
case DbType.UInt16: return "ushort";
case DbType.UInt32: return "uint";
case DbType.UInt64: return "ulong";
case DbType.VarNumeric: return "decimal";
default:
{
return "__UNKNOWN__" + column.NativeType;
}
}
}

指数函数帮助:实现表字符的种类。
以下是代码片段:
public string GetDefaultValue(ColumnSchema column)
{
if (column.Name.EndsWith("TypeCode")) return column.Name;

switch (column.DataType)
{
case DbType.AnsiString: return "\"\"";
case DbType.AnsiStringFixedLength: return "\"\"";
case DbType.Binary: return "null";
case DbType.Boolean: return "false";
case DbType.Byte: return "0";
case DbType.Currency: return "0";
case DbType.Date: return "DateTime.Parse(\"1900-1-1\")";
case DbType.DateTime: return "DateTime.Parse(\"1900-1-1\")";
case DbType.Decimal: return "0";
case DbType.Double: return "0";
case DbType.Guid: return "Guid.NewGuid().ToString()";
case DbType.Int16: return "0";
case DbType.Int32: return "0";
case DbType.Int64: return "0";
case DbType.Object: return "\"\"";
case DbType.SByte: return "0";
case DbType.Single: return "0";
case DbType.String: return "\"\"";
case DbType.StringFixedLength: return "";
case DbType.Time: return "DateTime.Parse(\"1900-1-1\")";
case DbType.UInt16: return "0";
case DbType.UInt32: return "0";
case DbType.UInt64: return "0";
case DbType.VarNumeric: return "0";
default:
{
return "__UNKNOWN__" + column.NativeType;
}
}
}

涵数功效:获取表字符串的默认设置值。
以下是代码片段:
public string ConvPropertyName(string name)
{
return name.Substring(0,1).ToUpper() +
name.Substring(1);
}

涵数用:对进入的明称格局化,取得首字母a为英文大写的明称,如user,返回了User。 第六步,调用实际情况提取样例整体的代碼怎么用,不同你需要的版式打印输出。代碼怎么用给出:
以下是代码片段:

using System;
using System.Collections.Generic;
using System.Text;

namespace PowerEasy.Model.<%= NameSpace %>
{
///


/// Description:<%= Description %>
///

public class <%= rule.ConvPropertyName(rule.GetTableName(TableName)) %>Info
{
///
///<%= Description %>
///

public <%= rule.ConvPropertyName(rule.GetTableName(TableName)) %>Info()
{
}

<%
ColumnSchemaCollection columns=rule.GetColumnCollection(DataBase,TableName);
for(int i=0;i {
Response.Write(" //"+columns[i].Description+"\r\n");
Response.Write(" private "+rule.GetType(columns[i])+" m_"+columns[i].Name+";\r\n");
}
%>

#region
<%
for(int i=0;i {
%>
///
///<%= columns[i].Description %>
///

public <%= rule.GetType(columns[i]) %> <%= rule.ConvPropertyName(columns[i].Name) %>
{
get { return m_<%= columns[i].Name %>; }
set { m_<%= columns[i].Name %>=value; }
}
<%
}
%>
#endregion
}
}

最后,在CodeSmithStudio.exe电脑运行模板图片 填写你的参数,运行后就得到了你需要的实体代码:

以下是引用片段:
using System;
using System.Collections.Generic;
using System.Text;

namespace AAA
{
///


/// Description:BBB实体
///

public class OrderInfo
{
///
///Description
///

public OrderInfo()
{
}

//订单ID
private int m_OrderId;
//订单编号
private string m_OrderNum;
//用户名
private string m_UserName;
//代理商名
private string m_AgentName;
//客户ID
private int m_ClientId;
//订单总金额
private decimal m_MoneyTotal;
//购买商品合计金额
private decimal m_MoneyGoods;
//是否需要开发票
private bool m_NeedInvoice;
//发表内容,包括抬头、商品名称、金额等
private string m_InvoiceContent;
//是否已开发票
private bool m_Invoiced;
//备注
private string m_Remark;
//已收款
private decimal m_MoneyReceipt;
//开始服务日期
private DateTime m_BeginDate;
//录入时间
private DateTime m_InputTime;
//受货人姓名
private string m_ContacterName;
//收货人地址
private string m_Address;
//邮编
private string m_ZipCode;
//手机
private string m_Mobile;
//联系电话
private string m_Phone;
//EMAIL
private string m_Email;
//付款方式
private int m_PaymentType;
//送货方式
private int m_DeliverType;
//订单状态
private int m_Status;
//物流状态
private int m_DeliverStatus;
//是否开通下载
private bool m_EnableDownload;
//返还的现金券
private decimal m_PresentMoney;
//赠送点券
private int m_PresentPoint;
//得到的积分
private int m_PresentExp;
//付款方式的折扣
private double m_Discount_Payment;
//运费
private decimal m_Charge_Deliver;
private string m_ClientName;

#region
///


///订单ID
///

public int OrderId
{
get { return m_OrderId; }
set { m_OrderId = value; }
}
///
///订单编号
///

public string OrderNum
{
get { return m_OrderNum; }
set { m_OrderNum = value; }
}
///
///用户名
///

public string UserName
{
get { return m_UserName; }
set { m_UserName = value; }
}
///
///代理商名
///

public string AgentName
{
get { return m_AgentName; }
set { m_AgentName = value; }
}
///
///客户ID
///

public int ClientId
{
get { return m_ClientId; }
set { m_ClientId = value; }
}
///
///订单总金额
///

public decimal MoneyTotal
{
get { return m_MoneyTotal; }
set { m_MoneyTotal = value; }
}
///
///购买商品合计金额
///

public decimal MoneyGoods
{
get { return m_MoneyGoods; }
set { m_MoneyGoods = value; }
}
///
///是否需要开发票
///

public bool NeedInvoice
{
get { return m_NeedInvoice; }
set { m_NeedInvoice = value; }
}
///
///发表内容,包括抬头、商品名称、金额等
///

public string InvoiceContent
{
get { return m_InvoiceContent; }
set { m_InvoiceContent = value; }
}
///
///是否已开发票
///

public bool Invoiced
{
get { return m_Invoiced; }
set { m_Invoiced = value; }
}
///
///备注
///

public string Remark
{
get { return m_Remark; }
set { m_Remark = value; }
}
///
///已收款
///

public decimal MoneyReceipt
{
get { return m_MoneyReceipt; }
set { m_MoneyReceipt = value; }
}
///
///开始服务日期
///

public DateTime BeginDate
{
get { return m_BeginDate; }
set { m_BeginDate = value; }
}
///
///录入时间
///

public DateTime InputTime
{
get { return m_InputTime; }
set { m_InputTime = value; }
}
///
///受货人姓名
///

public string ContacterName
{
get { return m_ContacterName; }
set { m_ContacterName = value; }
}
///
///收货人地址
///

public string Address
{
get { return m_Address; }
set { m_Address = value; }
}
///
///邮编
///

public string ZipCode
{
get { return m_ZipCode; }
set { m_ZipCode = value; }
}
///
///手机
///

public string Mobile
{
get { return m_Mobile; }
set { m_Mobile = value; }
}
///
///联系电话
///

public string Phone
{
get { return m_Phone; }
set { m_Phone = value; }
}
///
///EMAIL
///

public string Email
{
get { return m_Email; }
set { m_Email = value; }
}
///
///付款方式
///

public int PaymentType
{
get { return m_PaymentType; }
set { m_PaymentType = value; }
}
///
///送货方式
///

public int DeliverType
{
get { return m_DeliverType; }
set { m_DeliverType = value; }
}
///
///订单状态
///

public int Status
{
get { return m_Status; }
set { m_Status = value; }
}
///
///物流状态
///

public int DeliverStatus
{
get { return m_DeliverStatus; }
set { m_DeliverStatus = value; }
}
///
///是否开通下载
///

public bool EnableDownload
{
get { return m_EnableDownload; }
set { m_EnableDownload = value; }
}
///
///返还的现金券
///

public decimal PresentMoney
{
get { return m_PresentMoney; }
set { m_PresentMoney = value; }
}
///
///赠送点券
///

public int PresentPoint
{
get { return m_PresentPoint; }
set { m_PresentPoint = value; }
}
///
///得到的积分
///

public int PresentExp
{
get { return m_PresentExp; }
set { m_PresentExp = value; }
}
///
///付款方式的折扣
///

public double DiscountPayment
{
get { return m_Discount_Payment; }
set { m_Discount_Payment = value; }
}
///
///运费
///

public decimal ChargeDeliver
{
get { return m_Charge_Deliver; }
set { m_Charge_Deliver = value; }
}
///
///客户姓名
///

public string ClientName
{
get { return m_ClientName; }
set { m_ClientName = value; }
}
#endregion
}
}

CodeSmith 由 Eric J. Smith 编写,下载地址是:

【打印正文】 发布信息时:2006-09-03 12:49:51 浏览次数: 原作者:必武 源于:受美国法律原創
×

用户登录

var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?90c4d9819bca8c9bf01e7898dd269864"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); !function(p){"use strict";!function(t){var s=window,e=document,i=p,c="".concat("https:"===e.location.protocol?"https://":"http://","sdk.51.la/js-sdk-pro.min.js"),n=e.createElement("script"),r=e.getElementsByTagName("script")[0];n.type="text/javascript",n.setAttribute("charset","UTF-8"),n.async=!0,n.src=c,n.id="LA_COLLECT",i.d=n;var o=function(){s.LA.ids.push(i)};s.LA?s.LA.ids&&o():(s.LA=p,s.LA.ids=[],o()),r.parentNode.insertBefore(n,r)}()}({id:"K9y7iMpaU8NS42Fm",ck:"K9y7iMpaU8NS42Fm"});