C# 列出并计算 class 属性的所有使用情况

C# list and count all usages of class properties

我的解决方案中有几个 class 具有很多属性。 现在我想写一段代码,可以输出一个包含以下信息的列表

有什么巧妙的方法吗? (我知道如何列出 classes 属性,但如何获取使用的属性及其计数?)

使用 NDepend 工具,您可以write a code query与此类似。

            // Adjust this to match exactly the time you want
            // like for example ... WithNameLike("regex")
let types = Application.Namespaces.WithName("Nop.Core").ChildTypes()

let properties = (from t1 in types
   from m in t1.Methods
   where !m.IsStatic && m.IsPropertyGetter || m.IsPropertySetter
   select m)

from prop in properties
select new { prop, prop.MethodsCallingMe }

然后您可以浏览查询结果,并为每个 属性 获取计数和使用列表,感谢 prop.MethodsCallingMe:

然后您可以使用各种工具将查询结果中的部分或全部元素导出到实时 dependency graph 以更好地可视化依赖关系:

你可以download full featured trial here.

免责声明:我在 NDepend

工作