故如虹,知恩;故如月,知明
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
欢迎加群交流技术

开发自己的代码生成工具

5328人阅读 2019/4/30 16:07 总访问:3914877 评论:4 收藏:0 手机
分类: 软件架构


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


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


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

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


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


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

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

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

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

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

就是在csproj文件中


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

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


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

1:先找到csporj所在的目录

2:打开文件

3:加入配置

4:保存文件即可

示例代码如下:

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

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


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

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


欢迎加群讨论技术,群:677373950(满了,可以加,但通过不了),2群:656732739

评价