gpt4 book ai didi

C# .NET CORE 如何获取自定义属性的值?

转载 作者:太空狗 更新时间:2023-10-29 20:58:15 27 4
gpt4 key购买 nike

我有一个自定义属性类,定义如下。

[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;
}
}
}

我将上述属性应用到另一个类,如下所示。

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

public string AuthClientCertThumbprint { get; set; } = "";
}

如何获取属性 AuthClientId 的 Encrypted=True 值?

var config = new KeyVaultConfiguration();

// var authClientIdIsEncrypted = ??

在 .NET Framework 中,这很容易。在 .NET CORE 中,我认为这是可能的,但我没有看到任何文档。我相信您需要使用 System.Reflection,但具体如何使用?

最佳答案

添加 using System.Reflection 然后您可以使用来自 CustomAttributeExtensions.cs 的扩展方法.

像这样的东西应该适合你:

typeof(<class name>).GetTypeInfo()
.GetProperty(<property name>).GetCustomAttribute<YourAttribute>();

你的情况

typeof(KeyVaultConfiguration).GetTypeInfo()
.GetProperty("AuthClientId").GetCustomAttribute<EncryptedAttribute>();

关于C# .NET CORE 如何获取自定义属性的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42689283/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com