> 백엔드 개발 > C++ > C# 리플렉션으로 호출 메서드의 이름과 유형을 확인할 수 있나요?

C# 리플렉션으로 호출 메서드의 이름과 유형을 확인할 수 있나요?

Susan Sarandon
풀어 주다: 2024-12-30 20:45:10
원래의
591명이 탐색했습니다.

Can C# Reflection Reveal the Calling Method's Name and Type?

리플렉션을 통해 호출 메서드 세부정보에 액세스

질문:

C#에서 리플렉션을 활용할 수 있습니까? 현재 메서드를 호출한 메서드의 이름과 형식을 검색합니다. 방법?

답변:

예, 가능합니다. 이를 달성하는 방법에 대한 코드 데모는 다음과 같습니다.

public class SomeClass
{
    public void SomeMethod()
    {
        StackFrame frame = new StackFrame(1);
        MethodBase method = frame.GetMethod();
        Type type = method.DeclaringType;
        string name = method.Name;
    }
}
로그인 후 복사

다음 추가 클래스를 고려하세요.

public class Caller
{
    public void Call()
    {
        SomeClass s = new SomeClass();
        s.SomeMethod();
    }
}
로그인 후 복사

이 시나리오에서는 변수 이름과 유형에 " 값이 할당됩니다. 통화" 및 "발신자".

.NET용 업데이트 4.5:

.NET 4.5에 도입된 CallerMemberNameAttribute는 이 프로세스를 단순화합니다. 아래 수정된 SomeClass에서:

public class SomeClass
{
    public void SomeMethod([CallerMemberName]string memberName = "")
    {
        Console.WriteLine(memberName); // Outputs the calling method's name
    }
}
로그인 후 복사

이는 StackFrame 및 GetMethod() 메서드의 필요성을 대체합니다.

위 내용은 C# 리플렉션으로 호출 메서드의 이름과 유형을 확인할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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