public string ToByteWrite(string tab) { StringBuilder sb = new StringBuilder(); sb.Append(tab + tab + tab + CodeGeneratorHelperE.ByteWtrite(prop_type, prop_name)); return(sb.ToString()); }
public string ToLocalRead(string tab, string data) { StringBuilder sb = new StringBuilder(); sb.Append(tab + tab + tab + CodeGeneratorHelperE.LocalRead(prop_type, prop_name, data)); return(sb.ToString()); }
public string ToDes(string tab) { StringBuilder sb = new StringBuilder(); CodeGeneratorHelperE.AppendComment(tab, sb, comment); sb.AppendLine(tab + string.Format("public {0} {1};", prop_type, prop_name)); return(sb.ToString()); }
// 通过信息形成文本 public string ToDes() { StringBuilder sb = new StringBuilder(); sb.AppendLine("using System.Collections.Generic;"); sb.AppendLine("using System.IO;"); string tab = "\t"; // 1.空间名 sb.AppendLine(CodeGeneratorConstE.NAMESPACE); sb.AppendLine("{"); // 2.注释 CodeGeneratorHelperE.AppendComment(tab, sb, comment); // 3.类名 sb.AppendLine(tab + "public class " + class_name + " : BaseCsv"); sb.AppendLine(tab + "{"); // 4.属性 int prop_length = properties.Count; for (int i = 0; i < prop_length; i++) { sb.AppendLine(properties[i].ToDes(tab + tab)); } sb.AppendLine(""); // 5.属性Local读取 { sb.AppendLine(tab + tab + "//属性Local读取"); sb.AppendLine(tab + tab + "public void ToLocalRead(List<string> contents)"); sb.AppendLine(tab + tab + "{"); for (int i = 0; i < prop_length; i++) { sb.AppendLine(properties[i].ToLocalRead(tab, "contents[" + i + "]")); } sb.AppendLine(tab + tab + "}"); } sb.AppendLine(""); //6.属性Byte读取 { sb.AppendLine(tab + tab + "//属性Byte读取"); sb.AppendLine(tab + tab + "public void ToByteRead(BinaryReader br)"); sb.AppendLine(tab + tab + "{"); for (int i = 0; i < prop_length; i++) { sb.AppendLine(properties[i].ToByteRead(tab)); } sb.AppendLine(tab + tab + "}"); } sb.AppendLine(""); //7.属性Byte写入 { sb.AppendLine(tab + tab + "//属性Byte写入"); sb.AppendLine(tab + tab + "public void ToByteWrite(BinaryWriter bw)"); sb.AppendLine(tab + tab + "{"); for (int i = 0; i < prop_length; i++) { sb.AppendLine(properties[i].ToByteWrite(tab)); } sb.AppendLine(tab + tab + "}"); } // ToLocalWrite { sb.AppendLine(tab + tab + "public string ToLocalWrite()"); sb.AppendLine(tab + tab + "{"); sb.Append(tab + tab + tab + "return "); for (int i = 0; i < prop_length; i++) { if (i == 0) { sb.AppendLine(properties[i].ToLocalWrite("") + "+\", \"+"); } else if (i == prop_length - 1) { sb.AppendLine(tab + tab + tab + tab + properties[i].ToLocalWrite("") + ";"); } else { sb.AppendLine(properties[i].ToLocalWrite(tab) + "+\", \"+"); } } sb.AppendLine(tab + tab + "}"); } sb.AppendLine(tab + "}"); sb.AppendLine("}"); sb.AppendLine(string.Empty); return(sb.ToString()); }
public static string CreateClassManager(Dictionary <string, BaseCsvInfo> csv_map) { List <BaseCsvInfo> csv_infos = new List <BaseCsvInfo>(csv_map.Values); sb.Remove(0, sb.Length); int length; // using CodeGeneratorHelperE.AppendLine(sb, 0, "using System;"); CodeGeneratorHelperE.AppendLine(sb, 0, "using System.Collections.Generic;"); CodeGeneratorHelperE.AppendLine(sb, 0, "using System.IO;"); CodeGeneratorHelperE.AppendLine(sb, 0, "using Summer;"); // 类名 CodeGeneratorHelperE.AppendLine(sb, 0, "public class " + CodeGeneratorConstE.config_manager); CodeGeneratorHelperE.AppendLine(sb, 0, "{"); //CodeGeneratorHelperE.AppendLine(sb, 1, "public static {0} Instance = new {0}();", CodeGeneratorConstE.config_manager); { // 属性 /*length = csv_infos.Count; * for (int i = 0; i < length; i++) * { * CodeGeneratorHelperE.AppendLine(sb, 1, "public Dictionary<int, {0}> {1} = new Dictionary<int, {0}>();", csv_infos[i].class_name, csv_infos[i].class_name.ToLower()); * }*/ } CodeGeneratorHelperE.AppendLine(sb, 0, string.Empty); // void ReadLocalConfig { CodeGeneratorHelperE.AppendLine(sb, 1, "public static void ReadLocalConfig()"); CodeGeneratorHelperE.AppendLine(sb, 1, "{"); CodeGeneratorHelperE.AppendLine(sb, 1, "StaticCnf.Clear();"); CodeGeneratorHelperE.AppendLine(sb, 2, "int length = 0;"); CodeGeneratorHelperE.AppendLine(sb, 2, "Dictionary<string, BaseCsvInfo> csv_infos = CnfHelper.LoadFileContent();"); { CodeGeneratorHelperE.AppendLine(sb, 2, "BaseCsvInfo info = null;"); length = csv_infos.Count; for (int i = 0; i < length; i++) { CodeGeneratorHelperE.AppendLine(sb, 0, string.Empty); string key = csv_infos[i]._className; CodeGeneratorHelperE.AppendLine(sb, 2, "info = csv_infos[\"{0}\"];", key); CodeGeneratorHelperE.AppendLine(sb, 2, "Dictionary<int, {0}> {1} = new Dictionary<int, {0}>();", key, key.ToLower()); //CodeGeneratorHelperE.AppendLine(sb, 2, "{0}.Clear();", key.ToLower()); CodeGeneratorHelperE.AppendLine(sb, 2, "length = info.datas.Count;"); CodeGeneratorHelperE.AppendLine(sb, 2, "for (int i = 0; i < length; i++)"); CodeGeneratorHelperE.AppendLine(sb, 2, "{"); CodeGeneratorHelperE.AppendLine(sb, 3, "{0} tmp = new {0}();", key); CodeGeneratorHelperE.AppendLine(sb, 3, "tmp.ToLocalRead(info.datas[i]);"); CodeGeneratorHelperE.AppendLine(sb, 3, "{0}.Add(tmp.id, tmp); ", key.ToLower()); CodeGeneratorHelperE.AppendLine(sb, 2, "}"); CodeGeneratorHelperE.AppendLine(sb, 2, "StaticCnf.Add({0});", key.ToLower()); } } CodeGeneratorHelperE.AppendLine(sb, 1, "}"); } // void ReadByteConfig { CodeGeneratorHelperE.AppendLine(sb, 1, "public static void ReadByteConfig()"); CodeGeneratorHelperE.AppendLine(sb, 1, "{"); CodeGeneratorHelperE.AppendLine(sb, 1, "StaticCnf.Clear();"); { CodeGeneratorHelperE.AppendLine(sb, 2, "byte[] bytes = ResManager.instance.LoadByte(CnfConst.DATA_BYTE_NAME);"); CodeGeneratorHelperE.AppendLine(sb, 2, "MemoryStream ms = new MemoryStream(bytes);"); CodeGeneratorHelperE.AppendLine(sb, 2, "BinaryReader br = new BinaryReader(ms);"); CodeGeneratorHelperE.AppendLine(sb, 2, "int length = 0;"); length = csv_infos.Count; for (int i = 0; i < length; i++) { CodeGeneratorHelperE.AppendLine(sb, 0, string.Empty); string key = csv_infos[i]._className; CodeGeneratorHelperE.AppendLine(sb, 2, "length = br.ReadInt32();"); CodeGeneratorHelperE.AppendLine(sb, 2, "Dictionary<int, {0}> {1} = new Dictionary<int, {0}>();", key, key.ToLower()); //CodeGeneratorHelperE.AppendLine(sb, 2, "{0}.Clear();", key.ToLower()); CodeGeneratorHelperE.AppendLine(sb, 2, "for (int i = 0; i < length; i++)"); CodeGeneratorHelperE.AppendLine(sb, 2, "{"); CodeGeneratorHelperE.AppendLine(sb, 3, "{0} tmp = new {0}();", key); CodeGeneratorHelperE.AppendLine(sb, 3, "tmp.ToByteRead(br);", i); CodeGeneratorHelperE.AppendLine(sb, 3, "{0}.Add(tmp.id, tmp); ", key.ToLower()); CodeGeneratorHelperE.AppendLine(sb, 2, "}"); CodeGeneratorHelperE.AppendLine(sb, 2, "StaticCnf.Add({0});", key.ToLower()); } CodeGeneratorHelperE.AppendLine(sb, 2, "ms.Flush();"); CodeGeneratorHelperE.AppendLine(sb, 2, "ms.Close();"); CodeGeneratorHelperE.AppendLine(sb, 2, "br.Close();"); CodeGeneratorHelperE.AppendLine(sb, 2, "ms.Dispose();"); } CodeGeneratorHelperE.AppendLine(sb, 1, "}"); } // void WriteByteConfig { CodeGeneratorHelperE.AppendLine(sb, 1, "public static void WriteByteConfig()"); CodeGeneratorHelperE.AppendLine(sb, 1, "{"); CodeGeneratorHelperE.AppendLine(sb, 2, "FileInfo file_info = new FileInfo(CnfConst.data_byte_path);"); CodeGeneratorHelperE.AppendLine(sb, 3, "if (file_info.Exists)"); CodeGeneratorHelperE.AppendLine(sb, 2, "file_info.Delete();"); CodeGeneratorHelperE.AppendLine(sb, 2, "FileStream file_stream = file_info.Create();"); CodeGeneratorHelperE.AppendLine(sb, 2, "BinaryWriter bw = new BinaryWriter(file_stream);"); { CodeGeneratorHelperE.AppendLine(sb, 2, "int length = 0;"); length = csv_infos.Count; for (int i = 0; i < length; i++) { CodeGeneratorHelperE.AppendLine(sb, 0, string.Empty); string key = csv_infos[i]._className; CodeGeneratorHelperE.AppendLine(sb, 2, "List<{0}> tmp_{1} = new List<{0}>(StaticCnf.FindMap<{0}>().Values);", key, key.ToLower()); CodeGeneratorHelperE.AppendLine(sb, 2, "length = tmp_{0}.Count;", key.ToLower()); CodeGeneratorHelperE.AppendLine(sb, 2, "bw.Write(length);"); CodeGeneratorHelperE.AppendLine(sb, 2, "for (int i = 0; i < length; i++)"); CodeGeneratorHelperE.AppendLine(sb, 2, "{"); CodeGeneratorHelperE.AppendLine(sb, 3, "{0} data = tmp_{1}[i];", key, key.ToLower()); CodeGeneratorHelperE.AppendLine(sb, 3, "data.ToByteWrite(bw);", i); CodeGeneratorHelperE.AppendLine(sb, 2, "}"); } } CodeGeneratorHelperE.AppendLine(sb, 2, "file_stream.Flush();"); CodeGeneratorHelperE.AppendLine(sb, 2, "file_stream.Close();"); CodeGeneratorHelperE.AppendLine(sb, 2, "bw.Close();"); CodeGeneratorHelperE.AppendLine(sb, 2, "file_stream.Dispose();"); CodeGeneratorHelperE.AppendLine(sb, 1, "}"); } CodeGeneratorHelperE.AppendLine(sb, 0, "}"); return(sb.ToString()); }