【问题标题】:How can I retrieve all custom attributes on a class如何检索类上的所有自定义属性
【发布时间】:2013-05-11 09:57:10
【问题描述】:

我正在尝试检索应用于我的班级的所有属性的列表。

我可以看到 Attribute.GetCustomAttributes() 系列方法,但我只能看到用于检索程序集、模块、成员和属性的所有属性的方法——对于一个类没有。将 Type 作为参数的方法版本不合适,因为它们只返回该类型的属性,而我想按顺序遍历所有属性。

我为什么要这样做?我正在扩展我的应用程序,并添加一些简单的 UI 模块,我想加载用户的代码,并使用属性来定义控件,例如...

[MyTextBox("Address1:")]
[MyButton("QueryStatus")]
[MyButton("QuerySpeed/Pos")]
public class QueryStatus
{

我已经加载了程序集并且可以访问类 Type。还有其他地方可以找到我的所有自定义属性吗?

【问题讨论】:

    标签: .net reflection


    【解决方案1】:

    只需使用Type.GetCustomAttributes()

    Type type = ...;
    foreach (var attribute in type.GetCustomAttributes(inherit: false))
    {
        // Whatever you need to do
    }
    

    【讨论】:

    • 谢谢,我不知道我是怎么错过的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    • 1970-01-01
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多