| File: src\runtime\src\libraries\Common\src\Extensions\ProviderAliasUtilities\ProviderAliasUtilities.cs | Web Access |
| Project: src\runtime\src\libraries\Microsoft.Extensions.Logging.Configuration\src\Microsoft.Extensions.Logging.Configuration.csproj (Microsoft.Extensions.Logging.Configuration) |
// 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 System.Diagnostics; using System.Reflection; namespace Microsoft.Extensions.Logging { internal static class ProviderAliasUtilities { private const string AliasAttributeTypeFullName = "Microsoft.Extensions.Logging.ProviderAliasAttribute"; internal static string? GetAlias(Type providerType) { IList<CustomAttributeData> attributes = CustomAttributeData.GetCustomAttributes(providerType); for (int i = 0; i < attributes.Count; i++) { CustomAttributeData attributeData = attributes[i]; if (attributeData.AttributeType.FullName == AliasAttributeTypeFullName && attributeData.ConstructorArguments.Count > 0) { CustomAttributeTypedArgument arg = attributeData.ConstructorArguments[0]; Debug.Assert(arg.ArgumentType == typeof(string)); return arg.Value?.ToString(); } } return null; } } }