C#メモ 呼び出し元のクラス名とメソッド名を表示してみる
ちょい用事あったので。
ポイントはこんな感じかね?
- StackFrameクラスをインスタンス化する
- フレーム数で階層を指定する
- GetMethodメソッドで取得したオブジェクトのNameプロパティでメソッド名を取得する
- GetMethodメソッドで取得したオブジェクトのReflectedTypeのFullNameプロパティでクラスのフルパスを取得する
namespaceで追加するのはこんなん。
using System.Diagnostics;
んで、コードはこんなん。
public class Sample { // 実際にクラス名とメソッド名を取得するメソッド public static void Function() { // StackFrameクラスをインスタンス化する int nFrame = 1; // フレーム数(1なら直接呼び出したメソッド) StackFrame objStackFrame = new StackFrame(nFrame); // 呼び出し元のメソッド名を取得する string strMethodName = objStackFrame.GetMethod().Name; System.Console.WriteLine("Method Name is {0}()", strMethodName); // 呼び出し元のクラス名を取得する string strClassName = objStackFrame.GetMethod().ReflectedType.FullName; System.Console.WriteLine("Class Name is {0}", strClassName); } } class Program { // エントリーポイント(テスト用) static void Main(string[] args) { // テストメソッドを呼び出す Sample.Function(); } }
実行した結果はこんなん。
んまま、メモって事で。
ディスカッション
コメント一覧
まだ、コメントがありません