您的位置:首页 > 编程语言

用T4模板实现简单的代码生成器

2012-04-03 13:04 197 查看
最近想在项目中使用一个代码生成器,用T4模板实现了,还是蛮方便的。关于T4模板的介绍可以看下园中相关系列文章T4的介绍创建运行时模板。里面介绍蛮详细的。

代码生成器界面如下,比较简单,我这里是通过传入实体类名称生成对应层的代码:

View Code #region 通过反射取得要生成的类
Assembly ass = Assembly.Load("Template"); //获取程序集
Type myclass = null;
MethodInfo mymethod = null;
foreach (var name in list)
{
foreach (ListItem item in chkboxType.Items)
{
if (item.Selected)
{
Type[] mytypes = ass.GetTypes();
foreach (Type t in mytypes)
{
if (t.Name == item.Text)
{
myclass = t;
break;
}
}
Object obj = Activator.CreateInstance(myclass, name);
mymethod = myclass.GetMethod("TransformText"); //取TransformText()函数
String pageContent = mymethod.Invoke(obj, null).ToString();
//创建文件
File.AppendAllText(dirpath + @"\" + string.Format(item.Value, name) + ".cs", pageContent);
}
}
}
#endregion

#region

这里通过反射查找所有要生成的模板文件并创建文件,通过myclass.GetMethod("TransformText")调用TransformText方法,取得要生成的文件中内容。

代码中的下载和压缩用到了园子中的工具类 http://www.cnblogs.com/zjyuan/archive/2011/11/06/2237883.html

我这里生成的代码主要是为了符合自己项目的需要,实际使用中可以根据需要扩展如通过数据库表生成model,存储过程等

代码下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: