/// <summary> /// 判断配置名称是否存在 /// </summary> /// <param name="type">配置类型</param> /// <param name="name">配置名称</param> /// <returns>配置是否加载存在</returns> public bool IsConfigName(Type type, string name) { ajax.jsonNode config = getConfig(type); if (config.Type == ajax.jsonNode.nodeType.Dictionary && config.Dictionary.TryGetValue(name, out config)) { return(config.Type != ajax.jsonNode.nodeType.Null); } return(false); }
/// <summary> /// 配置加载 /// </summary> /// <param name="value">配置对象</param> /// <param name="name">配置名称,null表示只匹配类型</param> public valueType LoadConfig <valueType>(valueType value, string name = null) { if (value == null) { log.Default.Throw(log.exceptionType.Null); } ajax.jsonNode config = getConfig(value.GetType()); if (name == null) { return(ajax.parseJson.GetConfig <valueType>(value, config)); } if (config.Type == ajax.jsonNode.nodeType.Dictionary && config.Dictionary.TryGetValue(name, out config)) { return(ajax.parseJson.GetConfig <valueType>(value, config)); } //log.Default.Add("没有找到配置 " + typeof(valueType).fullName() + "." + name, true, false); return(value); }
/// <summary> /// 获取配置 /// </summary> /// <param name="type">配置类型</param> /// <returns>配置</returns> private ajax.jsonNode getConfig(Type type) { if (configs.Type != ajax.jsonNode.nodeType.Null) { string name = type.FullName, fastCSharpName = fastCSharp.pub.fastCSharp + "."; if (name.StartsWith(fastCSharpName, StringComparison.Ordinal)) { string fastCSharpConfig = fastCSharpName + "config."; name = name.Substring(name.StartsWith(fastCSharpConfig, StringComparison.Ordinal) ? fastCSharpConfig.Length : fastCSharpName.Length); } ajax.jsonNode config = configs; foreach (string tagName in name.Split('.')) { if (config.Type != ajax.jsonNode.nodeType.Dictionary || !config.Dictionary.TryGetValue(tagName, out config)) { return(default(ajax.jsonNode)); } } return(config); } return(default(ajax.jsonNode)); }