通过对Debug和Trace类进行一些实验,我发现Debug.Listeners在引用上等同于Trace.Listeners。
所以这些事情就发生了
Console.WriteLine(Debug.Listeners == Trace.Listeners); // true
Console.WriteLine(ReferenceEquals(Debug.Listeners, Trace.Listeners)); // true这使得不可能以不同的方式记录调试和跟踪消息。
这是一个bug,还是一个特性;更重要的是:为什么它是这样工作的?
发布于 2019-02-12 04:03:42
是的,它是一个特性(在某种意义上,它是文档化的- Trace.Listeners)。您拥有将记录的消息发送到某个目的地(跟踪窗口、控制台、文件等)的侦听器列表。
您可以通过定义/取消定义相应的符号来分别控制Debug.xxx和Trace.xxx语句是否执行任何操作。通常,你的“调试”版本定义了DEBUG和TRACE,而“发布”配置只定义了TRACE条件编译符号。您可以在"Build“选项卡上的项目属性中看到这一点。
https://stackoverflow.com/questions/54638156
复制相似问题