이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 29154|회답: 2

[출처] .NET/C# 속성 CallerMemberName, CallerFilePath, CallerLineNumber

[링크 복사]
게시됨 2021. 8. 11. 오전 9:45:56 | | | |
.Net 4.5에서는 CallerMemberName, CallerFilePath, CallerLineNumber의 세 가지 속성이 도입되었습니다. 컴파일러의 도움으로 호출 함수의 이름(정확히는 멤버여야 함), 호출 파일, 호출 라인 번호를 얻을 수 있습니다.

문서조사:https://docs.microsoft.com/en-us ... membernameattribute

StackTrace와 StackFrame 객체를 사용해 얻을 수도 있지만, 이 기능을 통해 더 편리하게 얻을 수 있습니다.

스택 트레이스: 하나 이상의 스택 프레임이 순서대로 이루어진 스택 트레이스를 나타냅니다.

스택프레임: 현재 스레드를 나타내는 호출 스택 내 함수 호출인 스택프레임에 대한 정보를 제공합니다.

이전에는 AOP를 사용해 StackTrace를 통해 호출자의 메서드 이름을 얻었고, 코드는 다음과 같습니다:


이 기능을 사용하면 테스트 코드는 다음과 같습니다:

렌더링:



(끝)




이전의:Maven updatePolicy 스냅샷 업데이트 정책
다음:Java 바이트[]와 InputStream은 서로 변환됩니다
 집주인| 게시됨 2022. 11. 27. 오후 9:09:56 |
 집주인| 게시됨 2022. 11. 27. 오후 10:35:47 |
비동기 함수에서 현재 메서드 이름을 얻으신가요?

하이퍼링크 로그인이 보입니다.

C# 5는 발신자 정보 속성을 추가하여 원하는 기능을 더 많이 제공할 수 있습니다. 이 모드들은 런타임 정보를 사용하지 않고 컴파일 시점에 호출 사이트에 적절한 정보를 삽입한다는 점에 유의하세요. 기능은 더 제한적이지만(물론 전체 콜 스택을 제공하지는 못하지만), 훨씬 빠릅니다.





면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com