.NET Compact Framework で以下の操作を行いたいです。Calling Method タイプを探しています。
http://www.csharp-examples.net/reflection-calling-method-name/
.NET Compact Framework は StackFrame クラスをサポートしていません。また、GetCurrentMethod() は MethodBase クラスでは使用できません。
.NET Compact Framework で以下の操作を行いたいです。Calling Method タイプを探しています。
http://www.csharp-examples.net/reflection-calling-method-name/
.NET Compact Framework は StackFrame クラスをサポートしていません。また、GetCurrentMethod() は MethodBase クラスでは使用できません。
例外をスローしてから、それが StackTrace プロパティであることを確認してください。
try
{
throw new Exception();
}
catch(Exception ex)
{
Console.Write(ex.StackTrace);
}
それは次のようなものを与えるでしょう
"NumericTextBoxControl.NumericalInput..ctor()\r\nat Custom_Numeric_Input.frmTestApplication.InitializeComponent()\r\nat Custom_Numeric_Input.frmTestApplication..ctor()\r\nat Custom_Numeric_Input.Program.Main()\r\n"
解析、分割、およびリフレクションを使用できます。
おわかりのように、Compact Framework はまさにコンパクトです。完全なフレームワークのすべてが利用できるわけではありません。これはその一例です。例外ハンドラー内にいて、そこで呼び出しスタックを確認できない限り、呼び出し元のメソッドを特定する方法はありません (さらに、メソッド名を取得するのは、思ったほど簡単ではありません)。