gpt4 book ai didi

c# - 如何获取当前方法调用跟踪?包括文件路径和代码行号

转载 作者:行者123 更新时间:2023-11-30 21:34:16 25 4
gpt4 key购买 nike

如果我使用这段代码:

static void Main()
{
A();
}
static void A()
{
B();
}
static void B()
{
C();
}
static void C()
{
System.Diagnostics.StackTrace t = new System.Diagnostics.StackTrace();
Console.WriteLine(t);
}

我可以得到这个:

at test.MyClass.C()
at test.MyClass.B()
at test.MyClass.A()
at test.MyClass.Main()

但是如果我想要更多这样的信息,我该怎么办: 在

test.MyClass.C()  at Program.cs line 26
at test.MyClass.B() at Program.cs line 22
at test.MyClass.A() at Program.cs line 18
at test.MyClass.Main() at Program.cs line 12

看起来我的帖子主要是代码;所以我需要在这里输入更多的单词...

最佳答案

是的。您可以通过使用调用者信息属性,您可以获得有关方法调用者的信息以及所有相关的调试信息msdn 链接https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/caller-information .

public void TraceMessage(string message,  
[System.Runtime.CompilerServices.CallerMemberName] string memberName = "",
[System.Runtime.CompilerServices.CallerFilePath] string sourceFilePath = "",
[System.Runtime.CompilerServices.CallerLineNumber] int sourceLineNumber = 0)
{
System.Diagnostics.Trace.WriteLine("message: " + message);
System.Diagnostics.Trace.WriteLine("member name: " + memberName);
System.Diagnostics.Trace.WriteLine("source file path: " + sourceFilePath);
System.Diagnostics.Trace.WriteLine("source line number: " + sourceLineNumber);
}

否则,如果您可以使用外部库来跟踪和记录每个信息,则可以使用 http://logging.apache.org/log4net/,the文档也足够好。

关于c# - 如何获取当前方法调用跟踪?包括文件路径和代码行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50442983/

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