【转】制作.net实体类生成器(1)

目的:因为.NET2005代码重构功能中的封装字段,一次只能封闭一个字段,造成程序员某种程度上的重复性工作。
制作实体类生成器将要实现的功能:
可根据填写的类名,类说明,命名空间,字段的类型、属性名、备注,自动生成对应的代码。
制作工具:VS2005
制作语言:C#
制作平台:windows
制作步骤:
1)

2)

3)添加user类

4)右键》重构》封装字段

5)

用类似的方法封装name
6)
namespace classgenerate
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
            user u = new user();
            u.Id = 1;
            u.Name = "午夜未眠";
        }
    }
}
7)生成看看:



8)现想通过界面文本的输入使其自动生成似类于如下代码:
using System;
using System.Collections.Generic;
using System.Text;
/*
*作者:无声胜有声
* 时间:2009年9月20日
* 类说明:用户实体类
*/
namespace classgenerate
{
    /// <summary>
    /// 用户实体类
    /// </summary>
    public class user
    {
        private int id;
        /// <summary>
        /// 用户ID
        /// </summary>
        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private string name;
        /// <summary>
        /// 用户名字
        /// </summary>
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
    }
}

9)根据界面的需要,拖入一些控件:

10)从公共控件中拖入:标签(label)、方文框(textbox)、单选按钮1(checked属性为可选true),单选按钮2(checked属性为false),从数据控件中拖入:datagridview用来设要封装的字段相关的信息,button1(生成实体类按钮)整理完毕,界面运行效果如下:

11)进一步优化界面:设置datagridview属性anchor为:top,bottom,left,right即上下左右跟随扩大或缩小,其name为:fdcontent(字段内容),button1的name为:btngenerate,命名空间文本框的name为:txtnamespace,两个单选按钮的name分别为:radyou,radwu,类说明文本框的name为txtexp(即说明单词前3个字母explanation),类名文本框的name为:txtclaname
12)点击datagridview的三角符号,然后选择添加列,输入相应的信息:



点击“添加”按钮即完成一个列的添加,用同样的方法进一步添加:名称为:type,类型选:datagridviewcombocolumn(即下拉框),页眉填:类型,再添加:名称为:remarks(备注的意思),类型:跟上图一样选文本框,页眉:填备注,完成点击关闭。
编辑“备注”列的属性将autosizemode设为fill

编辑“类型”列,设置字段的数据类型,items中点击collection在弹出对话框中填:int,string,float,double

原文地址:https://www.cnblogs.com/ae6623/p/4416789.html