示例#1
0
        public bool Validate(Type fieldType, string value)
        {
            ScriptableObjectBase t = ClientDataBaseManager.Get().LoadTable(tableName);

            if (t == null)
            {
                return(false);
            }

            return(t.CheckField(fieldName, value));
        }
示例#2
0
        public TableCheckConfigStrategy()
        {
            string configPath = ClientDataBaseManager.Get().m_config.m_root + CheckConfigFileName;

            if (File.Exists(configPath))
            {
                File.SetAttributes(configPath, FileAttributes.Normal);

                tableCheckConfigs = (CheckConfigs)XmlUtil.DeserializeFromXml(typeof(CheckConfigs), configPath);
                if (tableCheckConfigs == null)
                {
                    Debug.LogError(string.Format("#TableCheck# 验证表格的配置读取错误,请确认({0})", configPath));
                }
                else
                {
                    ValidateXmlConfig();
                }
            }
        }
示例#3
0
        /// <summary>
        /// 表格验证
        /// </summary>
        /// <param name="tableConfig"></param>
        private void DoTableValidate(TableCheckConfig tableConfig)
        {
            string tableName = tableConfig.TableName;

#if UNITY_EDITOR
            string tablePath = ClientDataBaseManager.Get().m_config.GetTableClassPath()
                               + ClientDataBaseManager.Get().m_config.GetTableClassScriptName(tableName, true);
            MonoScript script = AssetDatabase.LoadAssetAtPath <MonoScript>(tablePath);
            if (script == null || script.GetClass() == null)
            {
                Debug.LogError(
                    string.Format("#TableCheck# 配置的表名[{0}] 没有对应的csv或者没有生成对应的脚本代码", tableName));
                return;
            }

            foreach (var fieldConfig in tableConfig.FieldCheckConfigs)
            {
                DoFieldValidate(fieldConfig, script.GetClass(), tableName);
            }
#endif
        }