【问题标题】:Visual Studio: How to find out if Method A can be reached from Method B?Visual Studio:如何确定方法 A 是否可以从方法 B 到达?
【发布时间】:2021-03-16 23:38:24
【问题描述】:

在使用 C# 的 Visual Studio 2019 中,是否可以检查是否可以从 Method B 访问 Method A?理想情况下,我想捕获整个图形/堆栈跟踪。请注意,我不一定对Find All References 功能感兴趣,因为它似乎正在寻找对方法的直接引用。 Method AMethod B 之间可能存在多层间接。

【问题讨论】:

  • 您可以为此使用 ReSahrper。 Alternativly VS 具有调用层次结构的功能。右键单击您的成员并选择调用层次结构。
  • 我没有看过 ReSharper,但是调用层次结构功能似乎需要手动工作,因为我必须在层次结构的每个级别选择下一个方法。我希望输入/选择开始和结束方法,看看它们之间是否有联系。
  • 我怀疑有一些自动的方法。
  • 不清楚您是在谈论 VS GUI 还是实际在代码中进行。
  • 我想在 GUI 中执行此操作,类似于生成代码映射的方式。

标签: c# visual-studio stack-trace dependency-graph


【解决方案1】:

这只是 IDE 的一个特性和编译语言的本质。

只需将命名空间添加到包含“方法 B”的代码文件中即可。

然后尝试调用“方法 B”,例如MyStaticClass.MethodB()。

如果代码没有给出错误(由红色波浪下划线和编译错误指示),则该方法是可访问的。

以编程方式,您可以通过称为“反射”的方式来实现,具体步骤如下:

  1. 检查“方法 B”的程序集是否已加载。
  2. 检查方法 B 的父类是否公开。
  3. 检查方法 B 是否公开。

这似乎超出了您回答的意图,因此我将跳过代码示例,但我只是想指出这对于 IDE 和代码都是可能的。

【讨论】:

  • 我认为他的意思是“可以通过现有代码访问”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-11
  • 1970-01-01
  • 1970-01-01
  • 2013-06-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多