Dans le cadre de la gestion des erreurs dans notre produit, nous souhaitons vider certaines informations de trace de la pile. Cependant, nous constatons que de nombreux utilisateurs prennent simplement une capture d'écran de la boîte de dialogue des messages d'erreur au lieu de nous envoyer une copie du rapport complet disponible dans le programme.Informations sur la trace de la pile d'impression à partir du C#
Une trace de pile .NET sur ma machine ressemble à ceci:
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
J'ai cette question:
Le format semble être ceci:
at <class/method> [in file:line ##]
Cependant, le à et dans mots-clés, je suppose que ceux-ci seront localisés s'ils s'exécutent, disons, un norvégien .NET runtime i Au lieu de l'anglais que j'ai installé.
Y a-t-il un moyen pour moi de séparer cette trace de pile d'une manière neutre, de sorte que je puisse afficher seulement le fichier et le numéro de ligne pour les entrées qui ont ceci?
En d'autres termes, je voudrais cette information du texte ci-dessus:
C:\Dev\VS.NET\Gatsoft\LVKWinFormsSandbox\MainForm.cs:line 36
les conseils que vous pouvez donner vous sera utile.
Je souhaite que quelqu'un aurait donné la réponse de l'analyse syntaxique pour ce que je travaille avec des chaînes journalisés des applications arbitraires et espérait vraiment avoir des détails à ce sujet.Étant donné que vous avez le contrôle de la source du StackTrace, vous avez en effet choisi la bonne réponse :) – TheXenocide