/// <summary> /// LoadEmbedded /// </summary> /// <param name="type"></param> /// <param name="configFile"></param> /// <param name="sourceType"></param> /// <param name="isEmbedded"></param> /// <returns></returns> public static IConfiguration Load(Type type, string configFile, MetaSourceType sourceType, bool isEmbedded = false) { if (Configurations.TryGetValue(configFile, out var con)) { return(con); } if (!isEmbedded && !File.Exists(configFile)) { return(null); } using (var stream = isEmbedded?GetEmbeddedFileStream(type, configFile):File.OpenRead(configFile)) { if (sourceType.Equals(MetaSourceType.Auto)) { if (configFile.ToLower().EndsWith(".json")) { var provider = new EmbeddedConfigurationProvider <JsonConfigurationSource>(stream); var config = new ConfigurationRoot(new List <IConfigurationProvider> { provider }); Configurations.TryAdd(configFile, config); return(config); } else { var provider = new EmbeddedConfigurationProvider <XmlConfigurationSource>(stream); var config = new ConfigurationRoot(new List <IConfigurationProvider> { provider }); Configurations.TryAdd(configFile, config); return(config); } } else if (sourceType.Equals(MetaSourceType.JSON)) { var provider = new EmbeddedConfigurationProvider <JsonConfigurationSource>(stream); var config = new ConfigurationRoot(new List <IConfigurationProvider> { provider }); Configurations.TryAdd(configFile, config); return(config); } else { var provider = new EmbeddedConfigurationProvider <XmlConfigurationSource>(stream); var config = new ConfigurationRoot(new List <IConfigurationProvider> { provider }); Configurations.TryAdd(configFile, config); return(config); } } }
/// <summary> /// LoadEmbedded /// </summary> /// <param name="type"></param> /// <param name="configFile"></param> /// <param name="sourceType"></param> /// <param name="isEmbedded"></param> /// <param name="isReload"></param> /// <returns></returns> public static IConfiguration Load(Type type, string configFile, MetaSourceType sourceType, bool isEmbedded = false, bool isReload = true) { if (Configurations.TryGetValue(configFile, out var con)) { return(con); } if (!isEmbedded && !File.Exists(configFile)) { return(null); } if (isEmbedded || !isReload) { using (var stream = isEmbedded? GetEmbeddedFileStream(type, configFile):File.OpenRead(configFile)) { if (sourceType.Equals(MetaSourceType.Auto)) { if (configFile.ToLower().EndsWith(".json")) { //采用Json var provider = new EmbeddedConfigurationProvider <JsonConfigurationSource>(stream); var config = new ConfigurationRoot(new List <IConfigurationProvider> { provider }); Configurations.TryAdd(configFile, config); return(config); } else if (configFile.ToLower().EndsWith(".xml")) { var provider = new EmbeddedConfigurationProvider <XmlConfigurationSource>(stream); var config = new ConfigurationRoot(new List <IConfigurationProvider> { provider }); Configurations.TryAdd(configFile, config); return(config); } else { throw new NotSupportedException($"source file can not parse $`{configFile}`"); } } else if (sourceType.Equals(MetaSourceType.JSON)) { var provider = new EmbeddedConfigurationProvider <JsonConfigurationSource>(stream); var config = new ConfigurationRoot(new List <IConfigurationProvider> { provider }); Configurations.TryAdd(configFile, config); return(config); } else { var provider = new EmbeddedConfigurationProvider <XmlConfigurationSource>(stream); var config = new ConfigurationRoot(new List <IConfigurationProvider> { provider }); Configurations.TryAdd(configFile, config); return(config); } } } if (sourceType.Equals(MetaSourceType.Auto)) { if (configFile.ToLower().EndsWith(".json")) { //采用Json var provider = new EmbeddedConfigurationProvider <JsonConfigurationSource>(configFile); var config = new ConfigurationRoot(new List <IConfigurationProvider> { provider }); Configurations.TryAdd(configFile, config); return(config); } else if (configFile.ToLower().EndsWith(".xml")) { var provider = new EmbeddedConfigurationProvider <XmlConfigurationSource>(configFile); var config = new ConfigurationRoot(new List <IConfigurationProvider> { provider }); Configurations.TryAdd(configFile, config); return(config); } else { throw new NotSupportedException($"source file can not parse $`{configFile}`"); } } else if (sourceType.Equals(MetaSourceType.JSON)) { var provider = new EmbeddedConfigurationProvider <JsonConfigurationSource>(configFile); var config = new ConfigurationRoot(new List <IConfigurationProvider> { provider }); Configurations.TryAdd(configFile, config); return(config); } else { var provider = new EmbeddedConfigurationProvider <XmlConfigurationSource>(configFile); var config = new ConfigurationRoot(new List <IConfigurationProvider> { provider }); Configurations.TryAdd(configFile, config); return(config); } }