c# - 如何在程序集中找到实例化类 X 对象的所有方法?

标签 c# configuration code-analysis

这里有一个有趣的问题:在我当前的项目中,我们使用了一个配置非常繁重的自定义性能监控套件(它使用 Perfmon,因此我们必须手动注册每个性能计数器。我们为每种方法使用一个性能计数器监视器,其中有很多)。

我想知道是否有任何工具可以让我分析项目程序集,找到所有实例化 XClass 类实例的方法,然后将它们写到一个文件中?这将使我能够大幅减少需要进行的手动配置。

谢谢,埃德

编辑

抱歉,“将它们写入文件”这件事有点做作:我真的需要用一些额外的数据重新格式化它们并以特定于配置的 XML 格式写入它们。如果我可以对其进行编码以便将其设置为构建任务(这样我就不必手动运行它)并且可以轻松进行任何 future 更改并记录等,这将是最好的。

最佳答案

打开 Reflector 中的程序集(免费版很好);找到类型 (F3),然后调出分析器 (Ctrl+R) 并展开“Instantiated By”节点。

然后右击“Instantiated By”节点本身并点击复制;例如:

System.Data.SqlClient.SqlConnectionStringBuilder
    Depends On
    Used By
    Exposed By
    Instantiated By
        SqlDependencyProcessDispatcher.GetHashHelper(String, SqlConnectionStringBuilder&, DbConnectionPoolIdentity&, String&, String) : SqlConnectionContainerHashHelper
        System.Data.SqlClient.SqlClientFactory.CreateConnectionStringBuilder() : DbConnectionStringBuilder
        System.Web.Management.SqlWebEventProvider.Initialize(String, NameValueCollection) : Void
        System.Web.SessionState.SqlSessionStateStore.CreatePartitionInfo(String) : IPartitionInfo
        System.Web.SessionState.SqlSessionStateStore+SqlPartitionInfo.get_TracingPartitionString() : String
        System.Web.SessionState.SqlSessionStateStore+SqlStateConnection..ctor(SqlPartitionInfo, TimeSpan)

关于c# - 如何在程序集中找到实例化类 X 对象的所有方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4525976/

相关文章:

c# - 获取文化特定日期的日和月部分

java - 读取jar外的配置文件

c# - 如何修改以前配置的 StructureMap 配置?

c# - CA1001 Visual Studio 2012 代码分析警告。这是什么意思?

c# - Request.IsAuthenticated 如何工作?

c# - WPF 如何使 Viewbox 了解 StackPanel 中的可用空间

c# - 如何将数据库数据格式化为excel同一行c#

mysql - 我在 Windows 计算机上找不到 my.cnf

perl - 我如何从 Perl 中的代码引用中获取语法树?

code-analysis - Visual Studio 11 中代码克隆的配置