W ramach niektórych błędów obsługi naszych produktów chcielibyśmy zrzucić pewne informacje śledzenia stosu. Jednak mamy wrażenie, że wielu użytkowników po prostu zrobi zrzut ekranu okna dialogowego z komunikatem o błędzie, zamiast wysłać nam kopię pełnego raportu dostępnego z programu, a tym samym chciałbym udostępnić w tym oknie dialogowym kilka minimalnych informacji śledzenia stosu.Informacje dotyczące śledzenia stosu wydruku z C#
NET stos ślad na moim komputerze wygląda następująco:
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize)
at System.IO.StreamReader..ctor(String path)
at LVKWinFormsSandbox.MainForm.button1_Click(Object sender, EventArgs e) in C:\Dev\VS.NET\Gatsoft\LVKWinFormsSandbox\MainForm.cs:line 36
Mam to pytanie:
Format wygląda na to:
at <class/method> [in file:line ##]
Jednak at i w w słowach kluczowych, zakładam, że będą one zlokalizowane, jeśli uruchomią, powiedzmy, norweski .NET runtime i Poniżej angielskiej wersji, którą zainstalowałem.
Czy istnieje sposób dla mnie, aby wybrać ten ślad stosu w sposób neutralny językowo, tak, że mogę wyświetlić tylko plik i numer linii dla tych wpisów, które to mają?
Innymi słowy, chciałbym tej informacji od powyższego tekstu:
C:\Dev\VS.NET\Gatsoft\LVKWinFormsSandbox\MainForm.cs:line 36
Wszelkie porady można dać będzie pomocne.
Życzę ktoś dałby odpowiedź analizowania tego, jak pracuję z zapisanymi strun z dowolnych aplikacji i naprawdę chciałem uzyskać trochę szczegółów na ten temat.Biorąc pod uwagę, że masz kontrolę nad źródłem StackTrace, rzeczywiście wybrałeś poprawną odpowiedź :) – TheXenocide