大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > ASP.NET技巧 > CodeSmith 使用教程(2): 编写第一个代码模板

CodeSmith 使用教程(2): 编写第一个代码模板(3)

关键词:CodeSmith使用教程  阅读(1329) 赞(14)

[摘要]本文主要介绍CodeSmith 使用教程(2): 编写第一个代码模板,希望对你解决相关问题提供帮助。
这样在使用CodeSmith项目的Generate Codes,就自动覆盖原来的Properties/AssemblyInfo.cs文件。 内容就是模板中的代码部分。
// Created: <%= DateTime.Now.ToLongDateString() %>

可以看出来CodeSmith的模板文件如AssemblyInfo.cst 和Asp.Net的Page文件中功能是非常类似,可以通过<%= 和%>直接嵌入C#代码(或VB.Net,JavaScripts)。

对于属性来说,可以通过先定义属性:

<%@ Property Name="Author" Type="System.String" Description="Lead author of the project." %>
<%@ Property Name="Title" Type="System.String" Description="Title of the project." %>
<%@ Property Name="Description" Type="System.String" Description="Description of the project." %>
<%@ Property Name="Configuration" Type="System.String" Default="Debug" Description="Project configuration." %>
<%@ Property Name="Company" Type="System.String" Default="Guidebee Pty Ltd." %>
<%@ Property Name="Product" Type="System.String" Description="Product Name." %>
<%@ Property Name="Version" Type="System.String" Default="1.0.*" Description=".NET assembly version." %>
<%@ Property Name="FileVersion" Type="System.String" Default="1.0" Description="Win32 file version." %>

属性定义通过Property 定义,Name定义属性名,Type为属性的数据类型,Default定义属性的缺省值, Description可以定义属性的作用及说明。

然后就可以在C#代码中使用这些属性,完整的代码模板如下:

<%@ CodeTemplate Language="C#" TargetLanguage="C#" Description="Create an AssemblyInfo.cs file." %>
<%@ Property Name="Author" Type="System.String" Description="Lead author of the project." %>
<%@ Property Name="Title" Type="System.String" Description="Title of the project." %>
<%@ Property Name="Description" Type="System.String" Description="Description of the project." %>
<%@ Property Name="Configuration" Type="System.String" Default="Debug" Description="Project configuration." %>
<%@ Property Name="Company" Type="System.String" Default="Guidebee Pty Ltd." %>
<%@ Property Name="Product" Type="System.String" Description="Product Name." %>
<%@ Property Name="Version" Type="System.String" Default="1.0.*" Description=".NET assembly version." %>
<%@ Property Name="FileVersion" Type="System.String" Default="1.0" Description="Win32 file version." %>
using System.Reflection;
using System.Runtime.CompilerServices;
//
// Created: <%= DateTime.Now.ToLongDateString() %>
// Author:  <%= Author %>
//
[assembly: AssemblyTitle("<%= Title %>")]
[assembly: AssemblyDescription("<%= Description %>")]
[assembly: AssemblyConfiguration("<%= Configuration %>")]
[assembly: AssemblyCompany("<%= Company %>")]
[assembly: AssemblyProduct("<%= Product %>")]
[assembly: AssemblyCopyright("Copyright (c) <%= DateTime.Now.Year.ToString() %> <%= Company %>")]
[assembly: AssemblyCulture("")]
[assembly: AssemblyVersion("<%= Version %>")]
[assembly: AssemblyFileVersion("<%= FileVersion %>")]
[assembly: AssemblyDelaySign(true)]

此时如果需要“Generate output” 首先要配置代码模板的属性,这通过”Manage output” 来完成,



相关评论