> 백엔드 개발 > 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;
    }
}
로그인 후 복사

호출 메서드를 사용하면 이 코드를 사용하면 형식 변수를 통해 포함 클래스 이름에 액세스하고 이름을 통해 호출 메서드 이름에 액세스할 수 있습니다. 변수.

.NET 4.5에서 CallerMemberNameAttribute는 단순화된 대체 접근 방식을 제공합니다. 이를 사용하려면 메서드에 매개변수를 도입하고 [CallerMemberName] 특성으로 주석을 추가해야 합니다.

public void SomeMethod([CallerMemberName]string memberName = "")
로그인 후 복사

여기에서 memberName 매개변수는 호출 메서드의 이름으로 자동으로 채워집니다.

위 내용은 C# 리플렉션을 사용하여 호출 메서드의 이름과 클래스 이름을 어떻게 얻을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿