호출 메서드에 대한 정보를 얻는 작업을 시작할 때 호출 메서드의 이름과 메서드를 알아야 할 필요가 있을 수 있습니다. 클래스 이름을 포함합니다. 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; } }
호출 메서드를 사용하면 이 코드를 사용하면 형식 변수를 통해 포함 클래스 이름에 액세스하고 이름을 통해 호출 메서드 이름에 액세스할 수 있습니다. 변수.
.NET 4.5에서 CallerMemberNameAttribute는 단순화된 대체 접근 방식을 제공합니다. 이를 사용하려면 메서드에 매개변수를 도입하고 [CallerMemberName] 특성으로 주석을 추가해야 합니다.
public void SomeMethod([CallerMemberName]string memberName = "")
여기에서 memberName 매개변수는 호출 메서드의 이름으로 자동으로 채워집니다.
위 내용은 C# 리플렉션을 사용하여 호출 메서드의 이름과 클래스 이름을 어떻게 얻을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!