gpt4 book ai didi

c# - 似乎 Debug.Listeners 在 .net 核心中不存在

转载 作者:太空狗 更新时间:2023-10-29 23:28:26 28 4
gpt4 key购买 nike

net core2.2中好像没有Debug.Listeners

在 .net 框架中,我可以使用这个:

        Debug.Assert(true);
Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));
Debug.WriteLine("Debug");

然后我可以在调试时在控制台中看到我的调试消息。
但它不能在 net core 中工作,它会给出类似“Debug does not contain Listeners”的错误信息。我使用 F12 搜索(dotnet 核心):

public static class Debug
{
public static int IndentSize { get; set; }
public static bool AutoFlush { get; set; }
public static int IndentLevel { get; set; }
public static void Assert(bool condition);
public static void Assert(bool condition, string message);
public static void Assert(bool condition, string message, string detailMessageFormat, params object public static void Assert(bool condition, string message, string detailMessage);
public static void Close();
public static void Fail(string message);
public static void Fail(string message, string detailMessage);
public static void Flush();
public static void Indent();
public static void Print(string message);
public static void Print(string format, params object public static void Unindent();
public static void Write(string message, string category);
public static void Write(object value, string category);
public static void Write(object value);
public static void Write(string message);
public static void WriteIf(bool condition, object value);
public static void WriteIf(bool condition, string message);
public static void WriteIf(bool condition, string message, string category);
public static void WriteIf(bool condition, object value, string category);
public static void WriteLine(object value);
public static void WriteLine(object value, string category);
public static void WriteLine(string message);
public static void WriteLine(string format, params object public static void WriteLine(string message, string category);
public static void WriteLineIf(bool condition, object value);
public static void WriteLineIf(bool condition, object value, string category);
public static void WriteLineIf(bool condition, string message);
public static void WriteLineIf(bool condition, string message, string category);
}

确实找不到,至少不公开。
我怎样才能像以前一样调试我的应用程序?

官方文档(learn.microsoft.com)说Trace和Debug共享Listener,但是我的测试结果是:

        TextWriterTraceListener myWriter = new TextWriterTraceListener(Console.Out);
//Debug.Assert(false); //Assertion Failed
Trace.Listeners.Add(myWriter);
Debug.AutoFlush = true;
Debug.Indent();
Trace.WriteLine("Trace"); //write Trace
Debug.WriteLine("Debug"); //Don't write Debug
Console.ReadLine();

示例使用 Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));,但 Debug.Listeners 不存在。

最佳答案

从 .NET Core 3.0 开始,您可以使用 Trace.Listeners反而。它也会影响 Debug,并且在功能上是等效的。

关于c# - 似乎 Debug.Listeners 在 .net 核心中不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54342622/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com