目前在C#中跟踪程序流的可能性?

几年前我使用Postsharp来跟踪执行期间的程序流而无需手动将trace语句添加到方法中。

有没有其他新的方法来跟踪执行以类似的方式调试输出?

(最好是一种不需要检测构建组件的方法。也许不可能?)

如果您只想在调试时使用此function,那么Microsoft IntelliTrace是Visual Studio 2010 Ultimate的一部分,而且还有Sergey Vlasov的RunTime Flow 。 前者让你的程序运行得很慢。 没试过后者。

Gibraltar使用PostSharp,但为您提供了一个非常强大的客户端,用于可视化您的程序流。 你也可以比较快照,查看统计数据等。不幸的是它不是免费的:)

此外,大多数dependency injection框架(Unity,Windsor,Ninject,…)提供方法拦截。 在大多数情况下,您可以在app.config文件中定义跟踪方法。 但是,我更喜欢PostSharp 🙂