可能重复:
How to get a list of properties with a given attribute?
我有一个像这样的自定义类
public class ClassWithCustomAttributecs
{
[UseInReporte(Use=true)]
public int F1 { get; set; }
public string F2 { get; set; }
public bool F3 { get; set; }
public string F4 { get; set; }
}
我有自定义属性UseInReporte
:
[System.AttributeUsage(System.AttributeTargets.Property ,AllowMultiple = true)]
public class UseInReporte : System.Attribute
{
public bool Use;
public UseInReporte()
{
Use = false;
}
}
不,我想获取具有[UseInReporte(Use=true)]
所有属性的所有属性如何使用反射来完成此操作?
感谢
答案 0 :(得分:18)
List<PropertyInfo> result =
typeof(ClassWithCustomAttributecs)
.GetProperties()
.Where(
p =>
p.GetCustomAttributes(typeof(UseInReporte), true)
.Where(ca => ((UseInReporte)ca).Use)
.Any()
)
.ToList();
当然typeof(ClassWithCustomAttributecs)
应该替换为您正在处理的实际对象。