notepad ++中的System.Diagnostics.Trace类

时间:2018-04-10 18:20:59

标签: c# .net

我试过这个

using System;
using System.Diagnostics;
using System.IO;

public class Sample
{
    public static void Main()
    {
        Stream traceText = File.Create("trace.txt");
        TextWriterTraceListener textListener = new TextWriterTraceListener(traceText);
        Trace.Listeners.Add(textListener);

        Trace.Write("wth is goin on? I should be appearin in a txt file :(");

        Trace.Flush(); 
    }
}

并使用cmd编译, 但程序只是创建一个空的trace.txt文件..为什么?

btw我正在使用最新的.NET Framework版本,我使用的是notepad ++而不是VS

1 个答案:

答案 0 :(得分:3)

大多数Trace类方法(例如Write)都标有[Conditional("TRACE")]属性,这意味着编译器会删除对它们的调用,除非定义了相应的常量。

当您在visual studio中创建项目时,默认情况下通常会设置此常量,但是由于您是从命令行编译自己的 - 您需要自己定义它。

为此,要么放

#define TRACE

作为代码文件的第一行,或者从命令行编译时将/d:TRACE选项传递给编译器。