리플렉션을 통해 호출 메서드 세부정보에 액세스
질문:
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!