开发自己的代码生成工具

 

在一个项目中其实有很多代码都是重复的,几乎每个基础模块的代码都有增删改查的功能,而这些功能都是大同小异,如果这些功能都要自己去写,将会大大浪费我们的精力降低效率。所以这种重复性的代码完全可以由代码生成器生成。

c#里边的代码生成自带的有t4,是一个非常好用的代码生成工具,可以自己编写生成逻辑,但是如果不是很熟悉的话,自己控制起来还是有点麻烦,其实我们完全可以自己写一个简单的代码生成工具。

 

要生成代码其实很简单,其实不过就是写文件,把我们需要的代码用StringBuilder写好,然后生成文件即可。

开发自己的代码生成工具_第1张图片

 

开发自己的代码生成工具_第2张图片

生成成功后我们可以在指定的位置到生成的文件

文件的内容就是我们写入的字符串内容

 

开发自己的代码生成工具_第3张图片

 

这样虽然代码和文件能够成功的生成,但是会出现一个问题:文件不是自动包含在项目中

 

需要点击:显示所有文件才能看到生成的代码文件

然后右键保存就可以把文件包含在项目中

开发自己的代码生成工具_第4张图片

 

虽然这样可行,但是显然不科学,如果我一次生成的文件很大,会手动做很多工作

其实可以稍微分析一下就能发现,之所以vs能把文件包含到项目中其实是在配置文件写入了配置的

就是在csproj文件中

通过记事本打开就能够看到里边加入的配置,也就是说如果我们在生成代码的同事去向这个csporj文件写入一条配置就能让生成的代码文件自动加入vs的配置中了

开发自己的代码生成工具_第5张图片

 

然后发现微软有提供专门的类操作csporj文件的类库:Microsoft.Build,vs自带

但是这个并没有那么一下就会用哇,尝试了比较久发现其实几句代码就能实现向csproj加入配置

1:先找到csporj所在的目录

2:打开文件

3:加入配置

4:保存文件即可

 

示例代码如下:

开发自己的代码生成工具_第6张图片

该项目是单独新建的一个dll,类型为控制台专门用户生成代码的工具,当然生成代码的项目类型都可以

开发自己的代码生成工具_第7张图片

这样一来我们在生成代码的同时就能自动把生成的文件包含在vs中了,不过还有一个问题就是:通过代码修改了csporj文件需要重新加载才行

 

开发自己的代码生成工具_第8张图片

虽然点一下就行了,但是如果不用点的话岂不是更完美,尝试用c#执行命令去重新编译项目,但是还是没有成功的自动包含,

想想ef修改了数据库也需要去保存一下就先放放了。

 

原文地址:http://www.tnblog.net/aojiancc2/article/details/2406

 

 

 

 

 

 

 

 

  

 

 

你可能感兴趣的:(.net)