分享一个几年前写的代码生成器

该界面设计部分来自网络。版权归原作者所有。

该工具没有做完成。我只是学习用的。主要是为了熟悉Devexress控件的使用。

1系统主界面

2系统代码生成

3生成的详细代码查看

4该工具写的不是很智能. 如下生成WCF服务契约代码:

  1  public class CreateWcfService
  2     {
  3
  4         public static string GreateWcFserviceContract(List<Model> list)
  5         {
  6             var strsb = new StringBuilder();
  7             strsb.Append("/*\r\n");
  8             strsb.Append("服务信息 \r\n");
  9             strsb.AppendFormat("创建日期:{0} \r\n", DateTime.Now.ToLocalTime());
 10             strsb.Append("类描述: \r\n");
 11             strsb.Append("修改日期: \r\n");
 12             strsb.Append("版本号:V1.0 \r\n");
 13             strsb.Append("作者: \r\n");
 14             strsb.Append("*/\r\n\r\n");
 15             strsb.Append("*/\r\n\r\n");
 16
 17             #region 服务契约
 18
 19             strsb.AppendFormat("#region --------------------- " + list[0].TableName + "{0}--------------------- \r\n \r\n", "服务契约");
 20             strsb.AppendFormat(" ///<summary>\r\n ///新增操作{0} \r\n /// </summary>\r\n [OperationContract(IsInitiating = true)] \r\n  bool Insert{1}({2} model); \r\n \r\n", list[0].TableName, list[0].TableName, list[0].TableName);
 21             strsb.AppendFormat(" ///<summary>\r\n ///修改操作{0} \r\n /// </summary>\r\n [OperationContract(IsInitiating = true)] \r\n  bool Update{0}({1} model); \r\n \r\n", list[0].TableName, list[0].TableName);
 22             strsb.AppendFormat(" ///<summary>\r\n ///删除操作{0} \r\n /// </summary>\r\n [OperationContract(IsInitiating = true)] \r\n  bool Delete{0}({1} id);\r\n \r\n", list[0].TableName, DataType.ConvertSqlTypeToCSharp(list[0]));
 23             strsb.AppendFormat(" ///<summary>\r\n ///获取所有数据{0} \r\n /// </summary>\r\n [OperationContract(IsInitiating = true)] \r\n  List<{0}> Get{1}ListData(); \r\n \r\n", list[0].TableName, list[0].TableName);
 24             strsb.Append("#endregion \r\n");
 25
 26             #endregion
 27             return strsb.ToString();
 28         }
 29
 30         public static string CreateWcfServiceInfo(List<Model> list, string efName)
 31         {
 32             var strsb = new StringBuilder();
 33
 34             if (list.Count > 0)
 35             {
 36
 37                 #region 服务
 38
 39                 strsb.AppendFormat("#region --------------------- {0}--------------------- \r\n", "服务");
 40
 41                 #region 新增
 42                 strsb.AppendFormat(" ///<summary>\r\n ///新增操作{0} \r\n /// </summary>\r\n public bool Insert{1}({2} model) \r\n", list[0].TableName, list[0].TableName, list[0].TableName);
 43                 strsb.Append("   {\r\n");
 44                 strsb.Append("         try\r\n   ");
 45                 strsb.Append("         {\r\n ");
 46                 strsb.AppendFormat("             using(var entity=new {0}())\r\n ", efName);
 47                 strsb.Append("             { \r\n ");
 48                 strsb.AppendFormat("                   entity.{0}.AddObject(model); \r\n ", list[0].TableName);
 49                 strsb.Append("                   entity.SaveChanges(); \r\n ");
 50                 strsb.Append("             } \r\n ");
 51                 strsb.Append("         } \r\n ");
 52                 strsb.Append("         catch(EntityException) \r\n ");
 53                 strsb.Append("         { \r\n ");
 54                 strsb.Append("            return false; \r\n ");
 55                 strsb.Append("         } \r\n ");
 56                 strsb.Append("         catch(Exception ex) \r\n ");
 57                 strsb.Append("         { \r\n ");
 58                 strsb.Append("            throw ex.InnerException; false; \r\n ");
 59                 strsb.Append("         } \r\n ");
 60                 strsb.Append("       return true;\r\n  ");
 61                 strsb.Append("   }\r\n");
 62                 #endregion
 63
 64                 #region 修改
 65                 strsb.AppendFormat(" ///<summary>\r\n ///修改操作{0} \r\n /// </summary>\r\n public bool Update{0}({1} model) \r\n ", list[0].TableName, list[0].TableName);
 66                 strsb.Append("   {\r\n");
 67                 strsb.Append("         try\r\n   ");
 68                 strsb.Append("         {\r\n ");
 69                 strsb.AppendFormat("             using(var entity=new {0}())\r\n ", efName);
 70                 strsb.Append("             { \r\n ");
 71                 strsb.AppendFormat("                  var category=entity.{0}.FirstOrDefault(o=>o.{1}==model.{2}); \r\n ", list[0].TableName, list[0].ColumnName, list[0].ColumnName);
 72                 strsb.Append("                   if(category!=null) \r\n ");
 73                 strsb.Append("                      { \r\n ");
 74                 for (int i = 0; i < list.Count; i++)
 75                 {
 76                     strsb.AppendFormat("                        category.{0}=model.{1}; \r\n", list[i].ColumnName, list[i].ColumnName);
 77                 }
 78                 strsb.Append("                      } \r\n ");
 79                 strsb.Append("                     entity.SaveChanges(); \r\n ");
 80                 strsb.Append("             } \r\n ");
 81                 strsb.Append("         } \r\n ");
 82                 strsb.Append("         catch(EntityException) \r\n ");
 83                 strsb.Append("         { \r\n ");
 84                 strsb.Append("            return false; \r\n ");
 85                 strsb.Append("         } \r\n ");
 86                 strsb.Append("         catch(Exception) \r\n ");
 87                 strsb.Append("         { \r\n ");
 88                 strsb.Append("            return false; \r\n ");
 89                 strsb.Append("         } \r\n ");
 90                 strsb.Append("       return true;\r\n  ");
 91                 strsb.Append("   }\r\n");
 92                 #endregion
 93
 94                 #region 删除
 95
 96                 strsb.AppendFormat(" ///<summary>\r\n ///删除操作{0} \r\n /// </summary>\r\n public bool Delete{0}({1} model) \r\n ", list[0].TableName, DataType.ConvertSqlTypeToCSharp(list[0]));
 97                 strsb.Append("   {\r\n");
 98                 strsb.Append("         try\r\n   ");
 99                 strsb.Append("         {\r\n ");
100                 strsb.AppendFormat("             using(var entity=new {0}())\r\n ", efName);
101                 strsb.Append("             { \r\n ");
102                 strsb.AppendFormat("                  var category=entity.{0}.Where(o=>o.{1}=={2}); \r\n ", list[0].TableName, list[0].ColumnName, list[0].ColumnName);
103                 strsb.Append("                   if(category.Any()) \r\n ");
104                 strsb.Append("                      { \r\n ");
105                 strsb.Append("                        foreach(var item in category) \r\n ");
106                 strsb.Append("                           { \r\n ");
107                 strsb.AppendFormat("                               entity.{0}.DeleteObject(item); \r\n ", list[0].TableName);
108                 strsb.Append("                           } \r\n ");
109                 strsb.Append("                         entity.SaveChanges(); \r\n ");
110                 strsb.Append("                      } \r\n ");
111                 strsb.Append("             } \r\n ");
112                 strsb.Append("         } \r\n ");
113                 strsb.Append("         catch(EntityException) \r\n ");
114                 strsb.Append("         { \r\n ");
115                 strsb.Append("            return false; \r\n ");
116                 strsb.Append("         } \r\n ");
117                 strsb.Append("         catch(Exception ex) \r\n ");
118                 strsb.Append("         { \r\n ");
119                 strsb.Append("            throw ex.InnerException; \r\n ");
120                 strsb.Append("         } \r\n ");
121                 strsb.Append("       return true;\r\n  ");
122                 strsb.Append("   }\r\n");
123                 #endregion
124
125                 #region 获取数据
126                 strsb.AppendFormat(" ///<summary>\r\n ///获取所有数据{0} \r\n /// </summary>\r\n public List<{0}> Get{1}ListData() \r\n", list[0].TableName, list[0].TableName);
127                 strsb.Append("   {\r\n");
128                 strsb.Append("      try\r\n   ");
129                 strsb.Append("        {\r\n ");
130                 strsb.AppendFormat("             using(var entity=new {0}())\r\n ", efName);
131                 strsb.Append("             { \r\n ");
132                 strsb.AppendFormat("                return(from sel in entity.{0} select sel).ToList(); \r\n ", list[0].TableName);
133                 strsb.Append("             } \r\n ");
134                 strsb.Append("         } \r\n ");
135                 strsb.Append("         catch(EntityException exception) \r\n ");
136                 strsb.Append("         { \r\n ");
137                 strsb.Append("            throw exception.InnerException; \r\n ");
138                 strsb.Append("         } \r\n ");
139                 strsb.Append("         catch(Exception exception) \r\n ");
140                 strsb.Append("         { \r\n ");
141                 strsb.Append("           throw exception.InnerException; \r\n ");
142                 strsb.Append("         } \r\n ");
143                 strsb.Append("    }\r\n");
144                 #endregion
145
146
147                 strsb.Append("#endregion \r\n \r\n");
148
149                 #endregion
150
151
152             }
153             return strsb.ToString();
154         }
155
156     }

其实对于现在来说。肯定要以模板的形式去写代码生成器。

代码我将上传在百度网盘。又需要人朋友留言获取。

分享一个几年前写的代码生成器

时间: 2024-10-13 22:59:53

分享一个几年前写的代码生成器的相关文章

分享一个自己写的.Net的ORM工具

注册博客园帐号也有好几年了,之前注册帐号主要是为了看别人的文章下载东西的时候方便.从来没有写过什么博客,一直以为只要注册了帐号就可以写博客,最近用到了才发现还得申请一下,于是就申请了博客,算了也不扯这么多没用的了,直接进入主题吧! 网上开源的ORM工具也不少,开源中国上就有不少,很多都下载试用过,不过感觉用起来都不是很方便,园子里面也有不少人分享自己写的ORM工具,用过一个叫 MySoft.Data 的ORM工具,感觉里面的链式调用函数的写法不错,但是用起来感觉也有些不如意的地方,于是某个周末的

分享一个近期写的简单版的网页采集器

分享一个近期写的简单版的网页采集器 功能特点: 1.可通过配置,保存采集规则. 2.可通过采集规则,进行数据采集. 3.可分页,分关键字,进行采集. 4.可保存数据至数据库,文本中. ........... 功能还比较简单,喜欢深入的可以继续深入下去,暂时还没有登录的功能,因为登录功能涉及到的范围比较广,待日后慢慢研究后再开发. 我先上个图让大家一睹为快吧: 首先看看页面,我们要采集这个网站的文章 接下来,首先是查找分页,获得分页里面的文章链接,接着查找内容页需要采集的字段,生成规则,进行采集.

分享一个C++写的远程控制木马:Gh0st_VS2010直接编译

经过修改VS2010已经可以直接编译了,之前做了360等主流的免杀现在已经失效了 放出代码给需要的朋友学习,请勿用作非法用途 代码下载地址如下: 链接: http://pan.baidu.com/s/1sjwhh8L  密码: rc6f 编译后有3个文件,运行Gh0st.exe就行了,运行以后配置好,可以生成被控端,运行以后自动删除自己的exe,开机启动服务等--至于使用教程百度很多,自己找一找吧 解压密码在: http://www.bcwhy.com/thread-21884-1-1.html

快到七夕了,分享一个C写的exe,可以直接点击运行的,效果看下图

原文:快到七夕了,分享一个C写的exe,可以直接点击运行的,效果看下图 源代码下载地址:http://www.zuidaima.com/share/1550463688690688.htm 不要玫瑰.不要礼物,程序员有程序员表达爱情的方式

分享一个很早之前写的小工具DtSpyPlus

几年前写的一个获取windows窗体基本信息和屏幕取色的小工具 ,一直在用. 下载地址 http://files.cnblogs.com/dint/SpyPlus.zip

分享一个自己写的工具Sql2Json

前言 最近在维护一个公司之前自己开发的项目,项目使用的了WCF作为组件之间数据传输,可是在优化代码的过程当中发现了一些问题,最明显也最有必要修改的就是返回值是DataSet和DataTable的Function. 众所周知在WCF的Function中返回DataTable,DataSet对于性能有相当大的影响的,因为在Soap协议序列化为XML的时候会附加上很多的属性,记得一个最简单的说明是我们本想返回水果“Object”,但是DataSet却返回来一个“大树”. 于是想的最简单的方法就是在不修

分享一个从国外网站看到的socket程序,程序并不强悍,但能从代码中看到老外是怎么写代码的,咱可以取长补短

原文:分享一个从国外网站看到的socket程序,程序并不强悍,但能从代码中看到老外是怎么写代码的,咱可以取长补短 源代码下载地址:http://www.zuidaima.com/share/1550463702764544.htm package com.zuidaima.xs; /**************************************************************** * Version : 1.0 * Date : 02/03/2007 * Autho

【开源.NET】 分享一个前后端分离的轻量级内容管理框架

开发框架要考虑的面太多了:安全.稳定.性能.效率.扩展.整洁,还要经得起实践的考验,从零开发一个可用的框架,是很耗时费神的工作.网上很多开源的框架,为何还要自己开发?我是基于以下两点: 没找到合适的:安全.稳定.简单.易用.高效.免费: 想成为架构师: 于是就自己动手,参考网上开源的项目和借鉴网友的设计思路(特别是萧秦系列博文),结合自己的实践,开发了一个简单.易用.高效的的框架,虽然不完善,但也能解决现实中的问题.不过随着见识增广,发现没负责过千万级别的项目难以成为架构师,也不可能开发出一个完

分享一个jsonp劫持造成的新浪某社区CSRF蠕虫

最近jsonp很火,实话说已经是被玩烂了的,只是一直没有受到大家的重视.正好在上个月,我挖过一个由于jsonp造成的新浪某社区CSRF,当时是为了准备一篇文章,之后这篇文章也会拿出来分享. 因为新浪已经修复了问题,所以我先把这个漏洞分享出来.以下是当时写的部分文章. 0x01 引子 听说新浪五月送衣服,我其实也没太多空去挖洞.本来想交一个两年前挖的CSRF刷粉,结果拿出来一看那洞早没了,目标站都换了. 详细说,就是我那个洞被302跳转到新浪股吧(http://guba.sina.com.cn/)