예제 #1
0
        private IConfigurationSource ExtractConfigurationSource(string?baseDirectory, IConfigurationSource?appSettings)
        {
            baseDirectory ??= Path.GetDirectoryName(MainModule);

            var configurationSource = new CompositeConfigurationSource();

            configurationSource.Add(new DictionaryConfigurationSource(EnvironmentVariables));

            if (appSettings != null)
            {
                configurationSource.Add(appSettings);
            }
            else if (DotnetRuntime.HasFlag(Runtime.NetFx))
            {
                var appConfigSource = LoadApplicationConfig(MainModule);

                if (appConfigSource != null)
                {
                    configurationSource.Add(appConfigSource);
                }
            }

            if (GlobalSettings.TryLoadJsonConfigurationFile(configurationSource, baseDirectory, out var jsonConfigurationSource))
            {
                configurationSource.Add(jsonConfigurationSource);
            }

            return(configurationSource);
        }
예제 #2
0
    internal static TracerSettings FromDefaultSources()
    {
        var configurationSource = new CompositeConfigurationSource
        {
            new EnvironmentConfigurationSource(),

#if NETFRAMEWORK
            // on .NET Framework only, also read from app.config/web.config
            new NameValueConfigurationSource(System.Configuration.ConfigurationManager.AppSettings)
#endif
        };

        return(new TracerSettings(configurationSource));
    }