使用Linq获取Obsolete属性

时间:2013-07-05 11:03:20

标签: c# linq ndepend

任何人都知道如何在使用Linq时获取Obsolete属性?

我正在做NDepend但是无论如何我想进行查询并从应该被“弃用”的方法中获取所有过时的属性

Obsolete["I WANT THIS STRING"]

1 个答案:

答案 0 :(得分:1)

我相信你正在寻找的东西

from type in YourAssembly
from p in type.GetProperties()
from m in type.GetMembers()
let propertyAttributes = p.GetCustomAttributes(true)
let methodAttributes = m.GetCustomAttributes(true)
where propertyAttributes.Any(a => a.GetType() == typeof(ObsoleteAttribute))
     || methodAttributes.Any(a => a.GetType() == typeof(ObsoleteAttribute))
select new type;

它查询程序集中的所有类型,并选择具有ObsoleteAttribute的属性或方法的类型。