Как часть некоторой обработки ошибок в нашем продукте, мы хотели бы сбросить некоторую информацию о трассировке стека. Однако мы сталкиваемся с тем, что многие пользователи просто возьмут снимок экрана диалогового окна с сообщением об ошибке, а не отправят нам копию полного отчета, доступного из программы, и поэтому я хотел бы сделать небольшую информацию о трассировке стека, доступную в этом диалоговом окне.
Трассировка стека .NET на моей машине выглядит так:
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
У меня есть этот вопрос:
Формат выглядит следующим образом:
at <class/method> [in file:line ##]
Тем не менее, ключевые слова at и in, я полагаю, они будут локализованы, если они запустит, скажем, норвежскую среду .NET, вместо английского, который я установил.
Есть ли способ обойти эту трассировку стека нейтральным языком, чтобы я мог отображать только номер файла и строки для тех записей, которые имеют это?
Другими словами, мне хотелось бы получить эту информацию из приведенного выше текста:
C:\Dev\VS.NET\Gatsoft\LVKWinFormsSandbox\MainForm.cs:line 36
Любые советы, которые вы можете дать, будут полезны.