void ExportFC_InnerClass(ref StringBuilder szOut, int nSpaceCount, bool bExportReadWriteFunc) { int nSize = m_ChildMsgDesc.Count; for (int i = 0; i < nSize; ++i) { PBMessage pChild = m_ChildMsgDesc[i]; pChild.ExportFCScript(ref szOut, nSpaceCount, bExportReadWriteFunc); } }
public void ExportFC(string szPath, bool bExportReadWriteFunc) { // 先删除该目录下的文件 FCClassWrap.DeletePath(szPath); System.IO.Directory.CreateDirectory(szPath); StringBuilder szFileData = new StringBuilder(1024 * 1024 * 4); PBMessageFile pMsgFile = null; PBMessage pMsg = null; string szPathName = string.Empty, szFileName = string.Empty; int nFileCount = m_MessageFiles.Count; int nClassCount = 0; // 先导出PBTpye, 已经内置了,不需要导出了 //szFileData.Append("enum PB_ZipType\r\n"); //szFileData.Append("{\r\n"); //szFileData.Append(" PB_Zip_Varint = 0,\r\n"); //szFileData.Append(" PB_Zip_Fixed = 1,\r\n"); //szFileData.Append(" PB_Zip_ZigZag = 2,\r\n"); //szFileData.Append("};\r\n"); //szPathName = szPath + "FCProtobufType.cs"; //System.IO.File.WriteAllText(szPathName, szFileData.ToString()); for (int i = 0; i < nFileCount; ++i) { pMsgFile = m_MessageFiles[i]; szFileData.Clear(); for (int j = 0; j < pMsgFile.m_Enums.Count; ++j) { pMsgFile.m_Enums[j].ExportFC(ref szFileData, 0); } nClassCount = pMsgFile.m_Messages.Count; for (int j = 0; j < nClassCount; ++j) { pMsg = pMsgFile.m_Messages[j]; pMsg.ExportFCScript(ref szFileData, 0, bExportReadWriteFunc); } szFileName = pMsgFile.m_szFileName; szFileName += ".cs"; szPathName = szPath; szPathName += szFileName; // 保存 //System.IO.File.WriteAllText(szPathName, szFileData.ToString()); SaveUTF8File(szPathName, szFileData.ToString()); } }