首页 > 解决方案 > 如何在 Visual Studio 的每个类方法中插入打印语句

问题描述

我想在 C# 类中的每个方法的开头添加一个打印语句以帮助调试。基本上,我想把这个

public class SomeClass {
  public void Foo() {
    ...
  }

  public void Bar() {
    ...
  }
}

进入这个

public class SomeClass {
  public void Foo() {
    Console.WriteLine("SomeClass.Foo started");
    ...
  }

  public void Bar() {
    Console.WriteLine("SomeClass.Bar started");
    ...
  }
}

我正在使用适用于 Mac 的 Visual Studio 2019。是否有任何插件或内置的 VS 功能可以让我这样做?

标签: c#visual-studio

解决方案


@MirzaDobric,我将转向一个答案,只是为了给更多空间。是否有任何其他内置方法来记录每个方法调用...我只能想到一种适合该法案的方法,那就是面向方面的编程。我说“有点”是因为这比您所追求的旧式 printf 调试更具侵入性,因为它对运行时行为的影响更大。

但是您可以在此处阅读有关几种方法的更多信息: https ://docs.microsoft.com/en-us/archive/msdn-magazine/2014/february/aspect-orienting-programming-aspect-oriented-programming- with-the-realproxy-class

如果您不能使用调试器,也不能使用分析器,那么最好在少数需要它的地方手动添加跟踪。我在评论中发给你的那个链接应该足以解释这一点。请注意,我说的是跟踪,但这与使用 log4net 或 serilog 之类的东西相同。所有这三个的重要好处是添加外部配置来控制它记录的时间和数量,这样您就可以关闭日志记录并重新打开它,而无需重新编译和重新部署应用程序。

同样,这总是存在浪费精力的风险,因为如果问题是零星的,那么日志记录可能会改变运行时行为,足以阻止它发生或导致它发生在日志记录未涵盖的某个地方。但是,如果您别无选择,请开始记录并希望获得最好的结果。


推荐阅读