2017-07-11 42 views
0

如何從當前位置構建堆棧跟蹤?從.NET當前位置堆棧跟蹤核心

在.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的核心解決方案? 構造函數public StackTrace(bool fNeedFileInfo)不存在了。

回答

3

更新 .NET標準2.0已經發布,構造函數在那裏承諾。


看來這種類型目前不可用。在this post中提到它將被添加到.net標準2.0。

你可以使用支持.NET 5.0核心的System.Diagnostics.StackTrace NuGet包,.NET 1.3非標準,更

或者你可以使用.NET核心的master分支。

+0

謝謝,我會等待.net標準2.0 https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.StackTrace/ref/System.Diagnostics.StackTrace.cs – Cyrus

+0

fyi the 'StackTrace'類型已經可以通過'System.Diagnostics.StackTrace' nuget包得到,但沒有允許創建新跟蹤的構造函數 - 僅用於捕獲的異常。還有'Environment.StackTrace',但它只提供一個預渲染的字符串。 –