C# 使用代码在Visual Studio调试控制台中更改颜色

C# 使用代码在Visual Studio调试控制台中更改颜色,c#,winforms,visual-studio-2010,debugging,console,C#,Winforms,Visual Studio 2010,Debugging,Console,好吧,我继承了一些代码,而开始编写代码的人有一个不好的习惯,就是压制异常,这让我的生活很困难。因此,当我查看代码时,我试图在catch块中抛出一些东西,以便我能够了解发生了什么。由于这是一个Windows窗体应用程序,因此我无法写入控制台本身,但可以写入调试控制台。当我点击其中一个(以前)静噪异常时,我想改变文本的前景色,这样我就可以在调试时轻松地把它们挑出来。当然,写入调试控制台的另一个原因是客户在最终设计中看不到这些消息。有没有办法做到这一点?我已经尝试了下面的代码,但它没有完全做到这一点

好吧,我继承了一些代码,而开始编写代码的人有一个不好的习惯,就是压制异常,这让我的生活很困难。因此,当我查看代码时,我试图在
catch
块中抛出一些东西,以便我能够了解发生了什么。由于这是一个Windows窗体应用程序,因此我无法写入控制台本身,但可以写入调试控制台。当我点击其中一个(以前)静噪异常时,我想改变文本的前景色,这样我就可以在调试时轻松地把它们挑出来。当然,写入调试控制台的另一个原因是客户在最终设计中看不到这些消息。有没有办法做到这一点?我已经尝试了下面的代码,但它没有完全做到这一点

catch 
     {
        ConsoleColor tempColor = Console.ForegroundColor;
        StackTrace stackTrace = new StackTrace();
        Console.ForegroundColor = ConsoleColor.Red;
        System.Diagnostics.Debug.WriteLine("Exception Thrown: " + stackTrace.GetFrame(0).GetMethod().ToString());
        Console.ForegroundColor = tempColor;
     }

似乎没有办法改变颜色

但是,使用
WriteLine
方法的category选项将允许您格式化标题行和消息行:

Debug.WriteLine("\n\tError Message","Error Message 1");
输出应如下所示:

错误消息1:
错误消息

可能太晚了,但有一个工具(我还没有尝试过:()

我使用
http://
前缀来获取我的debug.writeline消息

Debug.WriteLine("http://MyMessage")

比使用调试控制台更简单:按Ctrl+Alt+E,在“公共语言运行时异常”下选择“抛出”。因此,即使您压制错误,您(开发人员)我会看到的。没错,但这有几个问题。我已经注意到很多未处理的异常,所以每次抛出异常时它都会弹出一个弹出窗口向我大喊大叫,这可能会让人讨厌(这有点像当你大量复制文件时,Windows对你大喊大叫,因为有重复的文件,
a.txt
b.txt
z.txt
一次一个。在某个时候,它变成了“狼来了”类型的交易)。另一个更重要的问题是,我正在使用的软件大量使用DLL,因此调试器无法告诉我异常是在哪里引发的,只能告诉我DLL名称。也许我错了,但我相信您无法控制调试控制台。解决方法是附加一些头(类似于[^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^