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

Ed *_*mes 3 c# configuration code-analysis

这里有趣的问题:在我目前的项目中,我们使用的是一个配置非常大的自定义性能监控套件(它使用Perfmon,因此我们必须手动注册每个性能计数器.我们监控的每个方法都有一个性能计数器,并且那里有很多).

我想知道是否有任何工具可以让我分析项目程序集,找到实例化类XClass实例的所有方法,然后将它们写入文件?这将允许我大幅削减我需要做的手动配置量.

谢谢,艾德

编辑

对不起,'把它们写到文件'的事情有点人为:我真的需要用一些额外的数据重新格式化它们并用特定于配置的XML格式编写它们.如果我可以对其进行编码以便将其设置为构建任务(因此我不必手动运行),这将是最好的,并且可以轻松地进行任何未来的更改并记录等.

Mar*_*ell 5

Reflector中打开组件(免费版本很好); 找到type(F3),然后调出anaylyzer(Ctrl+ R)并展开"Instantiated By"节点.

然后右键单击"Instantiated By"节点本身并单击"copy"; 例如:

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)
Run Code Online (Sandbox Code Playgroud)