可能通过不少博客的介绍,你们都知道代码段的使用,使用代码段能够很方便地生成一些经常使用的代码格式,确实对咱们开发很方便。在团队开发中或者在某些状况下咱们常常可能还会但愿使用Visual Studio生成的代码自动带有一些信息,好比代码文件的建立时间、代码的说明及对命名空间的引用等等,实际上这个功能经周公证明在Visual Studio2005以上版本中就支持了。html
下面以周公的本本的具体状况为例来加以说明,在周公的DELL 1425上系统是安装在C盘,在系统盘下同时安装了Visual Studio 2005和Visual Studio 2008两套Visual Studio,而且安装了正版的SQL Server 2005,由于系统盘常常在Windows XP和Windows 7之间切换而且还想在Windows XP和Windows 7之间共享某些我的配置,因此将个人文档目录设置到了系统最后的一个盘G盘上了,具体路径为G:\My Documents,若是不作特别配置应为C:\Documents and Settings\zhoufoxcn\My Documents,这一点尤为注意。dom
这里针对Visual Studio 2008来进行说明,首先咱们打开C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE这个目录(若是使用Visual Studio 2005则对应的路径为C:\Program Files\Microsoft Visual Studio 8\Common7\IDE),能够看到以下的状况:ide
从上图中能够看出ItemTemplates和ProjectTemplates文件夹被周公选中了,由于这个文件夹对咱们有用。其中ItemTemplates文件中存放着咱们向项目添加文件时的模板,ProjectTemplates文件夹顾名思义存放着咱们建立项目的模板。这些文件夹中的模板分别会在咱们建立文件或者项目时出现。post
除了这些模板以外,Visual Studio在新建时还会搜索当前用户的我的模板,在周公的本本上针对Visual Studio 2008的我的模板存放路径为G:\My Documents\Visual Studio 2008\Templates(若是没有通过这种这样的特殊设置,这个路径可能为C:\Documents and Settings\zhoufoxcn\My Documents\Visual Studio 2008\Templates,其中的zhoufoxcn为当前登陆系统的用户名),打开这个文件夹,咱们看到以下状况:网站
在没有作任何配置的时候这两个文件夹都是空的,在此时若是咱们向项目中添加文件会看到这样的状况,以下图:ui
从上图能够看出,个人模板是空的。spa
好了,下面周公将C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE下的ItemTemplates和ProjectTemplates文件夹拷贝到了当前我的配置文件夹G:\My Documents\Visual Studio 2008\Templates下(请注意你的电脑配置与个人电脑配置中路径的对应关系),可能系统会提示是否覆盖,点击确认以后咱们再在任何项目中建立新文件会看到下面的状况,以下图所示:.net
此时咱们能够看到个人模板下能够建立的新文件类型和系统的一摸同样,若是此时咱们选择建立的话,生成的文件内容也会和系统模板的同样。为了打造属于咱们个性的代码,咱们须要对个人模板进行改造。3d
举例来讲,假如咱们要改变系统默认生成的代码,想在建立代码时自动添加一些信息,好比咱们想让默认生成的是public的,那么能够按照下面的步骤作:code
首先打开个人模板存放路径,在周公这里这个路径是G:\My Documents\Visual Studio 2008\Templates\ItemTemplates(请注意你的可能与周公的不一样),这个文件夹下存放的是包含VB.NET、C++及C#等新建项目的模板,若是咱们要改变的是C#文件的,请继续打开C#文件的建立模板,在周公本本上这个路径为G:\My Documents\Visual Studio 2008\Templates\ItemTemplates\CSharp\Code\2052,在这个文件夹下有四个zip文件,名称是Class.zip、CodeFile.zip、Interface.zip和NETCFv2-Class.zip,分别对应的是添加类、代码文件、接口及.NET Compact Framework类的模板,在每一个zip压缩包里都有一个.cs文件和一个.vstemplate文件。在这里周公将Class.zip解压出来,这时的class.cs文件代码以下:
将代码更改以下:
保存class.cs,而后利用压缩软件将class.cs和刚刚从Class.zip中解压出来Class.vstemplate文件压缩为Class.zip文件(注意必定要压缩成zip文件而不是rar或者其它格式文件,WinRAR提供这种功能),而后替换原来的Class.zip文件。
好了,如今咱们能够检验咱们的成果了。随便打开一个项目,按照“添加”-“新建项”的步骤添加,在弹出的对话框中“个人模板”下选择“类”(由于咱们刚刚改的就是个人模板中添加的类的模板),这时Visual Studio 2008按照模板生成的代码以下:
从 上面的例子能够看出选择个人模板的项就会按照预约好的格式生成代码,若是咱们对项目中的代码有特殊格式要求的话,在这里统必定制很是方便,至少周公之后会 用这种模板来写公布在博客上的代码,由于周公注意到有很网站喜欢将别人博客上的文章中的连接信息和做者信息去掉,这事实上违反了做者的声明。有时间的话我 们能够针对每个项更改出本身的模板。
上面咱们仅仅演示了生成新文件的配置,其实咱们还能够更改新生成项目的配置,按照前面的操做咱们添加新项目时也有个人模板选项,以下图所示:
不过即便从个人模板中选择建立新项目也和系统中的项目同样,由于没有通过任何特殊配置。咱们能够修改G:\My Documents\Visual Studio 2008\Templates\ProjectTemplates\CSharp下的项目模板,它们一样也是一个zip文件,好比咱们想要统一程序集信息,能够修改这个zip文件中的assemblyinfo.cs文件的内容,这样就不用每次都手动去修改程序集信息了。
经过上面的步骤以后可让咱们很方便地定制了添加新项或者新项目的模板,这在公司中团队开发中仍是至关有用的,也方便对代码文件的格式的统一。
须要说明的是在编辑模板时会看到一个形如$time$、$rootnamespace$之类的东西,这些算是生成模板时用到的变量吧,在编辑模板时可使用哪些变量微软没有官方的资料,不过周公留意了一下,大概有以下:
Itemname
safeitemname
sateitemrootname
projectname
safeprojectname
rootnamespace
guid[1-10]
time
year
username
userdomain
machinename
clrversion
targetframeworkversion
registeredorganization
wizarddata
可能有些人对上面的变量名不是太理解,实际上是有规律的,都是一到几个单词的全称,只不过没有遵循咱们日常所说的Camel和Pascal命 名法则罢了(你们能够看的出不遵照命名法则确实难读多了),知道这个规律以后这些变量的用途你们都能顾名思义了,若是确实不能也能根据最终生成的代码推断 出它的用法的。此外,若是以为每次都要从“个人模板下”选择很麻烦的话,能够用更改后自定义模板替换系统中的模板。在刚刚编辑模板时咱们还看到了一些简单 逻辑,好比当使用的项目.NET Framework版本为3.5时会自动使用System.Linq命名空间,咱们还能够模范系统模板中的逻辑增长更多更符合我的或者公司须要的逻辑。
周公
2010-06-20