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);
        }
Example #2
0
        /// <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);
            }
        }