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