| File: Tracing\Configuration\DefaultActivityListenerConfigurationFactory.cs | Web Access |
| Project: src\runtime\src\libraries\Microsoft.Extensions.Diagnostics\src\Microsoft.Extensions.Diagnostics.csproj (Microsoft.Extensions.Diagnostics) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using System.Collections.Generic; using Microsoft.Extensions.Configuration; namespace Microsoft.Extensions.Diagnostics.Tracing { internal sealed class DefaultActivityListenerConfigurationFactory : ActivityListenerConfigurationFactory { private readonly IEnumerable<TracingConfiguration> _configurations; public DefaultActivityListenerConfigurationFactory(IEnumerable<TracingConfiguration> configurations) { _configurations = configurations ?? throw new ArgumentNullException(nameof(configurations)); } public override IConfiguration GetConfiguration(string listenerName) { ArgumentNullException.ThrowIfNull(listenerName); var configurationBuilder = new ConfigurationBuilder(); foreach (TracingConfiguration configuration in _configurations) { IConfigurationSection section = configuration.Configuration.GetSection(listenerName); configurationBuilder.AddConfiguration(section); } return configurationBuilder.Build(); } } }