Gunakan metode StackFrame.GetFileLineNumber , misalnya:
private static void ReportError(string message)
{
StackFrame callStack = new StackFrame(1, true);
MessageBox.Show("Error: " + message + ", File: " + callStack.GetFileName()
+ ", Line: " + callStack.GetFileLineNumber());
}
Lihat entri Blog Scott Hanselman untuk informasi lebih lanjut.
[Edit: Menambahkan berikut ini]
Bagi mereka yang menggunakan .Net 4.5 atau lebih baru, pertimbangkan atribut CallerFilePath , CallerMethodName dan CallerLineNumber di namespace System.Runtime.CompilerServices. Sebagai contoh:
public void TraceMessage(string message,
[CallerMemberName] string callingMethod = "",
[CallerFilePath] string callingFilePath = "",
[CallerLineNumber] int callingFileLineNumber = 0)
{
// Write out message
}
Argumen harus string
untuk CallerMemberName
dan CallerFilePath
dan int
untuk CallerLineNumber
dan harus memiliki nilai default. Menentukan atribut ini pada parameter metode menginstruksikan compiler untuk memasukkan nilai yang sesuai dalam kode panggilan pada waktu kompilasi, yang berarti ia bekerja melalui obfuscation. Lihat Informasi Penelepon untuk informasi lebih lanjut.