ホームページ > バックエンド開発 > C++ > C# リフレクションを使用して呼び出しメソッドの名前とクラス名を取得するにはどうすればよいですか?

C# リフレクションを使用して呼び出しメソッドの名前とクラス名を取得するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-31 14:10:16
オリジナル
350 人が閲覧しました

How Can I Get the Calling Method's Name and Class Name Using C# Reflection?

リフレクションを使用した呼び出しメソッドの詳細の取得

呼び出しメソッドに関する情報を取得するタスクに着手するとき、呼び出しメソッドの名前とクラス名が含まれています。 C# リフレクションを使用すると、これらの詳細を効果的に収集できるようになります。

これを実現するには、StackFrame クラスを利用するメソッドを作成します。呼び出しメソッドを表すパラメータ 1 を使用して StackFrame オブジェクトをインスタンス化します。次に、スタック フレームで GetMethod() メソッドを呼び出して、呼び出し元メソッドの情報を取得します。 DeclaringType プロパティは呼び出し側メソッドを含むクラスへのアクセスを提供し、Name プロパティは呼び出し側メソッドの名前を生成します。

たとえば、次のコード スニペットを考えてみましょう。

public class SomeClass
{
    public void SomeMethod()
    {
        StackFrame frame = new StackFrame(1);
        var method = frame.GetMethod();
        var type = method.DeclaringType;
        var name = method.Name;
    }
}
ログイン後にコピー

呼び出し側メソッドを使用すると、このコードにより、type 変数を介してそのメソッドを含むクラスの名前にアクセスし、name 変数を介して呼び出し側メソッドの名前にアクセスできるようになります。

.NET 4.5 では、CallerMemberNameAttribute が代替の簡略化されたアプローチを提供します。これを使用するには、メソッドにパラメータを導入し、[CallerMemberName] 属性で注釈を付ける必要があります。

public void SomeMethod([CallerMemberName]string memberName = "")
ログイン後にコピー

ここで、memberName パラメータには呼び出し側メソッドの名前が自動的に入力されます。

以上がC# リフレクションを使用して呼び出しメソッドの名前とクラス名を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート