/// <summary> /// 生成文件的 /// </summary> /// <param name="calssname"></param> public void create(string calssname) { //获取程序集 var createclass = assembly.load("cloudinnovate.backstage.entity"); //反射出所有的类 list<type> ts = createclass.gettypes().tolist(); //循环生成 ts.foreach(x => { //x.namespace获取命名空间 var ss = "using " + x.namespace + ";\n" + "using cloudinnovate.coreframework." + calssname + ";\n" + "using system;\n" + "using system.collections.generic;\n" + "using system.text;\n\n" + "namespace cloudinnovate.backstage.i" + calssname + "\n" + "{\n" + "\tpublic interface i" + x.name.substring(0, x.name.length - 6) + "" + calssname + " : ibase" + calssname + "<" + x.name + ">\n" + "\t{\n" + "\t}\n" + "}\n"; //创建文件夹 if (!directory.exists(@"c:\users\administrator\desktop\i" + calssname + "")) { directory.createdirectory(@"c:\users\administrator\desktop\i" + calssname + ""); } //创建文件夹 if (!directory.exists(@"c:\users\administrator\desktop\i" + calssname + @"\" + x.name.substring(0, x.name.length - 6) + "")) { directory.createdirectory(@"c:\users\administrator\desktop\i" + calssname + @"\" + x.name.substring(0, x.name.length - 6) + ""); } //保存 开启文件流 using (filestream fs = new filestream(@"c:\users\administrator\desktop\i" + calssname + @"\" + x.name.substring(0, x.name.length - 6) + @"\i" + x.name.substring(0, x.name.length - 6) + "" + calssname + ".cs", filemode.create)) { //文本写入 开启读写流 using (streamwriter sw = new streamwriter(fs)) { sw.write(ss); } } }); }
最近在项目中使用了仓储模式有些代码太过于重复了所以想写个生成。
本来是想用t4模板的,但是感觉t4不好用,所以就是使用了读写了直接写入吧。
主要就是想记录一下,好记性不如烂笔头。所以想博客记录一下。
黄山市民网:https://www.huangshanshimin.com/