呼び出しメソッドに関する情報を取得するタスクに着手するとき、呼び出しメソッドの名前とクラス名が含まれています。 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 サイトの他の関連記事を参照してください。