为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
紫衣仙女 2019-09-02 14:42:35
我正在尝试创建一个通用方法,该方法将读取类的属性并在运行时返回该值。我该怎么做?注意:DomainName属性属于DomainNameAttribute类。[DomainName("MyTable")]Public class MyClass : DomainBase{}我想要生成的内容://This should return "MyTable"String DomainNameValue = GetDomainName<MyClass>();
查看完整描述

3 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

已经有一个扩展来做到这一点。


namespace System.Reflection

{

    // Summary:

    //     Contains static methods for retrieving custom attributes.

    public static class CustomAttributeExtensions

    {

        public static T GetCustomAttribute<T>(this MemberInfo element, bool inherit) where T : Attribute;

    }

}

所以:


var attr = typeof(MyClass).GetCustomAttribute<DomainNameAttribute>(false);

return attr != null ? attr.DomainName : "";


查看完整回答
反对 回复 2019-09-02
?
MM们

TA贡献1886条经验 获得超2个赞

System.Reflection.MemberInfo info = typeof(MyClass);

object[] attributes = info.GetCustomAttributes(true);


for (int i = 0; i < attributes.Length; i++)

{

    if (attributes[i] is DomainNameAttribute)

    {

        System.Console.WriteLine(((DomainNameAttribute) attributes[i]).Name);

    }   

}


查看完整回答
反对 回复 2019-09-02
  • 3 回答
  • 0 关注
  • 458 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信