首页 > 解决方案 > C# 列出并计算类属性的所有用法

问题描述

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

有没有聪明的方法来做到这一点?(我知道如何列出类属性,但是如何获取使用的属性及其计数?)

标签: c#classpropertiescode-analysis

解决方案


使用 NDepend 工具,您可以编写与此类似的代码查询。

            // 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

ndepend代码查询结果

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

ndepend 代码查询结果导出到依赖图

您可以在此处下载全功能试用版

免责声明:我在 NDepend 工作


推荐阅读