次のコードがあります。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
try
{
this.CheckValue(true); // call method
}
catch(Exception ex)
{
// how to get here name of last called method
}
}
public int CheckValue(bool sender)
{
var qwe = int.Parse("qwe"); // invoke an exception
return 0;
}
}
最後に呼び出されたメソッド (この場合は「CheckValue」) の「catch ブロック」名を取得する必要がありますが、呼び出されたメソッドが「StringToNumber」であることを返します。
StackTrace を使用して取得しようとしています。
stackTrace.GetFrame(1).GetMethod().Name; -> "Main"
MethodBase.GetCurrentMethod(); -> "Void .ctor()"
ex.TargetSite.Name; -> "StringToNumber"
これを行うことは可能ですか?