protected override bool VariationalSerialize(StringBuilder sb, int indent) { bool bSerializeSuc = false; if (bSkipCurNest) { for (int i = 0, len = nodeContainer.Count; i < len; ++i) { if (nodeContainer.Count == 1) { nodeContainer[i].SkipCurNest(); } if (nodeContainer[i].Serialize(sb, indent)) { bSerializeSuc = true; if (nodeContainer[i] is CellInfo) { sb.Append("\n"); } } } } else if (ToLuaText.TransferList(nodeContainer, sb, indent)) { bSerializeSuc = true; } return(bSerializeSuc); }
public override bool Serialize(StringBuilder sb, int indent) { bool bSerializeSuc = false; bool bShowKeyName = ShowKeyName(); if (bShowKeyName) { ToLuaText.AppendIndent(sb, indent); sb.Append(strKeyNameInNestedTable); sb.Append(" = \n"); } indent = bShowKeyName ? indent + 1 : indent; if (VariationalSerialize(sb, indent)) { bSerializeSuc = true; } else if (bNestInArray) { ToLuaText.AppendIndent(sb, indent); sb.Append("{}"); bSerializeSuc = true; } return(bSerializeSuc); }
public bool Serialize(StringBuilder sb, int indent) { bool bSerializeSec = false; try { sb.Append("return "); var nodeList = tableColumnNodeList.NodeContainer; if (nodeList.Count == 1) { /// 处理的是整张表只有一个“|”标志的情况,即lua配置只有“一张”表。 /// "|"标志主要用来只用一个lua配置表,存储多种格式的lua配置表 nodeList[0].NestInArray(); bSerializeSec = nodeList[0].Serialize(sb, indent); } else { bSerializeSec = ToLuaText.TransferList(nodeList, sb, indent); } /// 去掉最后一个","字符 sb.Remove(sb.Length - 1, 1); return(bSerializeSec); } catch (Exception e) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(string.Format("序列化表 {0} 发生错误\n{1}", tableName, e.ToString())); return(false); } }
protected override bool VariationalSerialize(StringBuilder sb, int indent) { bool bSerializeSuc = false; ToLuaText.AppendIndent(sb, indent); sb.AppendFormat("--Key代表{0}\n", Desc); if (ToLuaText.TransferDic(nodeContainer, sb, indent)) { bSerializeSuc = true; } return(bSerializeSuc); }
static void ExportInjectionPublishInfo(SortedDictionary <string, List <InjectedMethodInfo> > data) { var temp = data.ToDictionary( typeInfo => typeInfo.Key, typeinfo => { return(typeinfo.Value .OrderBy(methodInfo => methodInfo.methodPublishedName) .ToDictionary( methodInfo => methodInfo.methodPublishedName, methodInfo => methodInfo.methodIndex )); } ); StringBuilder sb = StringBuilderCache.Acquire(); sb.Append("return "); ToLuaText.TransferDic(temp, sb); sb.Remove(sb.Length - 1, 1); File.WriteAllText(CustomSettings.baseLuaDir + "System/Injection/InjectionBridgeInfo.lua", StringBuilderCache.GetStringAndRelease(sb)); }
public override bool Serialize(StringBuilder sb, int indent) { bool bSerializeSuc = false; bool bInvalidKeyName = string.IsNullOrEmpty(strKeyNameInNestedTable); bool bCellInValid = bInvalidData || (bInvalidKeyName && (cellType == null || !bNestInArray)); bool bShowKeyName = ((bNestInTable && !bNestInArray) || bColumnHead) && !bInvalidKeyName && !bSkipCurNest; if (bCellInValid && !bColumnHead) { return(bSerializeSuc); } ToLuaText.AppendIndent(sb, indent); if (bShowKeyName) { sb.Append(strKeyNameInNestedTable); sb.Append(" = "); } if (bContainsArray) { var tempStringArray = originalData.Split(cellArrayTag[0]); var convertMethod = convertArrayDataGenericMethod.MakeGenericMethod(new Type[] { cellType }); var transferMethod = ToLuaText.MakeGenericArrayTransferMethod(cellType); try { var dataArray = convertMethod.Invoke(this, new object[] { tempStringArray }); transferMethod.Invoke(dataArray, new object[] { dataArray, sb, 0 }); bSerializeSuc = true; } catch (System.Exception e) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("ConvertStringFillToArray ::src =" + originalData + " " + e.Message); } } else { ToLuaText.AppendValue(cellType, originalData, sb); bSerializeSuc = true; } string descFormatStr = "--{0}"; if (bColumnHead && bInvalidData) { sb.Remove(sb.Length - 2, 2); } else if (bInvalidData) { bSerializeSuc = false; } /// 加上bColumnHead判断是避免没写Desc和有效数据(originalData为空)导致序列化出错 if (!string.IsNullOrEmpty(Desc) || bColumnHead) { sb.AppendFormat(descFormatStr, Desc); } return(bSerializeSuc); }