public bool Validate(Type fieldType, string value) { ScriptableObjectBase t = ClientDataBaseManager.Get().LoadTable(tableName); if (t == null) { return(false); } return(t.CheckField(fieldName, value)); }
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(); } } }
/// <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 }