/// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="bootupProvider">启动配置提供者</param>
 /// <param name="env">当前环境</param>
 public ConfigurationFactory(IBootupConfigurationProvider bootupProvider, IEnvironment env)
 {
     _bootupProvider = bootupProvider;
     _env            = env;
     _configOptions  = new ConfigFactoryOptions();
     ConfigurationBinder.Bind(bootupProvider.GetBootupConfiguration().GetSection("Configuration"), _configOptions);
     _configRootFullPath = System.IO.Path.Combine(env.ContentRootPath, _configOptions.ConfigurationRootPath);
 }
        /// <summary>
        /// 读取NLog配置文件位置
        /// </summary>
        /// <param name="provider"></param>
        /// <returns></returns>
        public static string GetNLogConfigFilePath(this IBootupConfigurationProvider provider)
        {
            var configurationSection  = provider.GetBootupConfiguration().GetSection("Configuration");
            var configurationRootPath = configurationSection.GetSection("ConfigurationRootPath").Value;
            var configurationFileName = configurationSection.GetSection("NLog").Value;

            if (configurationFileName == null)
            {
                return(null);
            }
            else
            {
                return(Path.Combine(configurationRootPath, configurationFileName));
            }
        }
 public NLogLoggerManager(IBootupConfigurationProvider bootupConfigurationProvider, IEnvironment env)
 {
     if (_initialized == false)
     {
         lock (typeof(NLogLoggerManager))
         {
             if (_initialized != false)
             {
                 return;
             }
             var configurationFilePath = bootupConfigurationProvider.GetNLogConfigFilePath();
             if (configurationFilePath != null)
             {
                 configurationFilePath = Path.Combine(env.ContentRootPath, configurationFilePath);
                 if (System.IO.File.Exists(configurationFilePath))
                 {
                     var config = new NLogSelf.Config.XmlLoggingConfiguration(configurationFilePath, false);
                     NLogSelf.LogManager.Configuration = config;
                 }
             }
             _initialized = true;
         }
     }
 }
 /// <summary>
 /// 读取Autofac配置
 /// </summary>
 /// <param name="provider"></param>
 /// <returns></returns>
 public static IConfiguration GetAutofacConfiguration(this IBootupConfigurationProvider provider)
 {
     return(provider.GetBootupConfiguration().GetSection("Autofac"));
 }