【问题标题】:stack trace from the current location in .NET Core.NET Core 中当前位置的堆栈跟踪
【发布时间】:2017-12-15 18:15:17
【问题描述】:

如何从当前位置构造堆栈跟踪?

在 .NET 4.5 中使用此解决方案:

System.Diagnostics.StackTrace stackTrace = new System.Diagnostics.StackTrace(true);
for (int i = 0; i < stackTrace.FrameCount; ++i)
{
    System.Diagnostics.StackFrame frame = stackTrace.GetFrame(i);
    MethodBase callerMethod = frame.GetMethod();
    ...
}

但是 .NET Core 中的解决方案是什么? 构造函数public StackTrace(bool fNeedFileInfo) 不存在了。

【问题讨论】:

    标签: c# .net .net-core .net-standard


    【解决方案1】:

    更新 .NET Standard 2.0 已发布,构造函数已按承诺在其中。


    目前似乎没有这种类型。在this post 中提到它将被添加到 .net 标准 2.0。

    您可以使用支持 .net core 5.0、.net standard 1.3 等的 System.Diagnostics.StackTrace nuget 包

    或者你可以使用 .net core 的master 分支。

    【讨论】:

    • 谢谢,我将等待 .net 标准 2.0 github.com/dotnet/corefx/blob/master/src/…
    • 仅供参考,StackTrace 类型已经通过System.Diagnostics.StackTrace nuget 包可用于 1.0,但没有允许创建新跟踪的构造函数 - 仅适用于捕获的异常。还有Environment.StackTrace,但它只给出一个预渲染的字符串。
    猜你喜欢
    • 2017-08-31
    • 2011-02-27
    • 2010-11-07
    • 2010-10-06
    • 2011-06-18
    • 1970-01-01
    • 2010-09-22
    相关资源
    最近更新 更多