2017-07-11 1 views
0

Wie kann ich einen Stack-Trace vom aktuellen Speicherort erstellen?Stack-Trace vom aktuellen Speicherort in .NET Core

In .NET 4.5 funktioniert diese Lösung:

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(); 
    ... 
} 

Aber was ist die Lösung in .NET-Core? Der Konstruktor public StackTrace(bool fNeedFileInfo) existiert nicht mehr.

Antwort

3

UPDATE .NET Standard 2.0 wurde veröffentlicht und der Konstruktor ist wie versprochen dort drin.


Es scheint, als ob dieser Typ im Moment nicht verfügbar ist. In this post wird erwähnt, dass es zu .net Standard 2.0 hinzugefügt wird.

Sie können das System.Diagnostics.StackTrace nuget Paket verwenden, den 5.0 .net Kern unterstützt, standart .net 1.3 und mehr

Oder Sie könnten den master Zweig des .net Kerns verwenden.

+0

Danke, ich werde auf .net Standard 2.0 warten https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.StackTrace/ref/System.Diagnostics.StackTrace.cs – Cyrus

+0

fyi der Der 'StackTrace'-Typ ist bereits für 1.0 über das' nuget-Paket 'System.Diagnostics.StackTrace' verfügbar, aber es gibt keinen Konstruktor, der das Erstellen einer neuen Ablaufverfolgung erlaubt - nur für abgefangene Ausnahmen. Es gibt auch "Environment.StackTrace", aber es gibt nur eine vorgerenderte Zeichenfolge. –