Récupère le nom de fichier depuis stacktrace et frame quand lève une exception

J’ai essayé d’obtenir le nom de fichier et le numéro de source lorsqu’une exception est levée. Mais je n’ai rien.

class Program { static void Main(ssortingng[] args) { try { throw new InvalidOperationException(); } catch (InvalidOperationException exception) { var stackTrace = new StackTrace(exception); var currentFrame = stackTrace.GetFrame(0); var fileName = currentFrame.GetFileName(); var sourceLineNumber = currentFrame.GetFileLineNumber(); Console.WriteLine("File Name: " + fileName); Console.WriteLine("Source line number: " + sourceLineNumber); Console.ReadKey(); } } } 

Il n’y a qu’un seul cadre disponible. J’utilise donc l’index 0 dans GetFrame(index) .

Je voudrais écrire une méthode et utiliser les CallerFilePath , CallerLineNumber et CallerMemberName

 public void Log([CallerFilePath]ssortingng path="",[CallerLineNumber]int lineNumber=0,[CallerMemberName] ssortingng memberName="") { Console.WriteLine(path + " " + lineNumber + " " + memberName); } 

Utilisation: Log()

Pour plus d’informations: https://msdn.microsoft.com/en-us/library/hh534540.aspx