private static bool ReadDataConfigFile() { _dataConfigInfos.Clear(); string path = null; if (File.Exists(csvDirPath + "/" + DataConfigFileName + ".csv")) { path = csvDirPath + "/" + DataConfigFileName + ".csv"; } else if (File.Exists(csvDirPath + "/" + DataConfigFileName + ".CSV")) { path = csvDirPath + "/" + DataConfigFileName + ".CSV"; } if (string.IsNullOrEmpty(path)) { Debug.Log("没有" + DataConfigFileName + "文件"); return(false); } var csr = new CsvStreamReader(path); for (var i = 1; i < csr.RowCount + 1; i += 2) { var config = new DataConfigInfo(); for (var j = 1; j < csr.ColCount + 1; j++) { var name = csr[i + 0, j]; var type = csr[i + 1, j]; switch (type) { case "className": config.className = name; break; case "parentClassName": config.parentName = name; break; default: if (string.IsNullOrEmpty(name)) { break; } config.fieldInfos.Add( name, new FieldInfo { fieldName = name, fieldType = type }); break; } } if (string.IsNullOrEmpty(config.className)) { return(false); } _dataConfigInfos.Add(config.className, config); } return(true); }
/// <summary> /// 读取数据结构信息 /// </summary> private static void LoadRootConfigData() { //避免重复初始化 if (_dataConfigInfos != null) { return; } _dataConfigInfos = new Dictionary <string, DataConfigInfo>(); var getString = ResourceMgr.GetAsset <TextAsset>("DataConfig", OriginBundleKey.File).text; var csr = new CsvReaderByString(getString); for (var i = 1; i < csr.RowCount + 1; i += 2) { var config = new DataConfigInfo(); for (var j = 1; j < csr.ColCount + 1; j++) { var name = csr[i + 0, j]; var type = csr[i + 1, j]; switch (type) { case "className": config.className = name; break; case "parentClassName": if (!string.IsNullOrEmpty(name)) { config.parentName = name; _dataConfigInfos[config.parentName] .childrenNames.Add(config.className); } break; case "fileKeys": foreach (var fileKey in name.Split('_')) { config.fileKeys.Add(fileKey.Trim()); } break; default: if (string.IsNullOrEmpty(name)) { break; } config.fieldInfos.Add( name, new FieldInfo { fieldName = name, fieldType = type }); break; } } if (string.IsNullOrEmpty(config.className)) { throw new Exception("ClassName is null ???"); } if (config.fileKeys.Count == 0) { config.fileKeys.Add(config.className); } _dataConfigInfos.Add(config.className, config); } }