如何在运行时读取类的属性?

如何在运行时读取类的属性?,第1张

如何在运行读取类的属性
public string GetDomainName<T>(){    var dnAttribute = typeof(T).GetCustomAttributes(        typeof(DomainNameAttribute), true    ).FirstOrDefault() as DomainNameAttribute;    if (dnAttribute != null)    {        return dnAttribute.Name;    }    return null;}

更新:

可以进一步推广此方法以使用任何属性:

public static class AttributeExtensions{    public static TValue GetAttributevalue<TAttribute, TValue>(        this Type type,         Func<TAttribute, TValue> valueSelector)         where TAttribute : Attribute    {        var att = type.GetCustomAttributes( typeof(TAttribute), true        ).FirstOrDefault() as TAttribute;        if (att != null)        { return valueSelector(att);        }        return default(TValue);    }}

并像这样使用:

string name = typeof(MyClass)    .GetAttributevalue((DomainNameAttribute dna) => dna.Name);


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5567415.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存