C # .NET CORE ¿cómo obtener el valor de un atributo personalizado?

Tengo una clase de atributo personalizado definida de la siguiente manera.

[AttributeUsage(AttributeTargets.Property, Inherited = false)] internal class EncryptedAttribute : System.Attribute { private bool _encrypted; public EncryptedAttribute(bool encrypted) { _encrypted = encrypted; } public virtual bool Encrypted { get { return _encrypted; } } } 

Apliqué el atributo anterior a otra clase de la siguiente manera.

 public class KeyVaultConfiguration { [Encrypted(true)] public string AuthClientId { get; set; } = ""; public string AuthClientCertThumbprint { get; set; } = ""; } 

¿Cómo obtengo el valor de Encrypted = True en la propiedad AuthClientId?

 var config = new KeyVaultConfiguration(); // var authClientIdIsEncrypted = ?? 

En .NET Framework, esto fue fácil. En .NET CORE, creo que esto es posible pero no veo ninguna documentación. Creo que necesitas usar System.Reflection pero ¿exactamente cómo?

Agregue using System.Reflection y luego puede usar métodos de extensión de CustomAttributeExtensions.cs .

Algo como esto debería funcionar para ti:

 typeof().GetTypeInfo() .GetProperty().GetCustomAttribute(); 

en tu caso

 typeof(KeyVaultConfiguration).GetTypeInfo() .GetProperty("AuthClientId").GetCustomAttribute();