PropertyInfo - 具有属性的GetProperties

Gui*_*Gui 8 c# system.reflection

我正在尝试为webform项目创建自定义属性验证.

我已经可以从我的类中获取所有属性,但现在我不知道如何过滤它们,只是获取具有某些属性的属性.

例如:

PropertyInfo[] fields = myClass.GetType().GetProperties();
Run Code Online (Sandbox Code Playgroud)

这将返回我所有的属性.但是,我怎么能使用像"testAttribute"这样的属性返回属性呢?

我已经搜索了这个,但经过几次尝试解决这个问题后,我决定在这里问一下.

Kir*_*oll 23

用途Attribute.IsDefined:

PropertyInfo[] fields = myClass.GetType().GetProperties()
    .Where(x => Attribute.IsDefined(x, typeof(TestAttribute), false))
    .ToArray();
Run Code Online (Sandbox Code Playgroud)


svi*_*ick 10

fields.Where(pi => pi.GetCustomAttributes(typeof(TestAttribute), false).Length > 0)
Run Code Online (Sandbox Code Playgroud)

请参阅文档GetCustomAttributes().