0

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

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

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

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

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

4

1 回答 1

1

只需使用Type.GetCustomAttributes().

Type type = ...;
foreach (var attribute in type.GetCustomAttributes(inherit: false))
{
    // Whatever you need to do
}
于 2013-05-11T10:00:05.557 回答