찾아 보거나 검색했지만 기대 한 바가 없습니다.nameof를 사용하여 현재 메서드의 이름을 얻습니다.
어쨌든 nameof
메서드 이름을 지정하는 사용하여 현재 메서드 이름을 얻으려면 C# 6.0 있습니까?
나는이 같은 사전에 내 테스트 결과를 추가하고 :
Results.Add(nameof(Process_AddingTwoConsents_ThreeExpectedRowsAreWrittenToStream), result);
나는 내가 선을 붙여 + 복사 할 수 있습니다 명시 적으로 메소드 이름을 지정하지 않았을 경우 내가 선호
, 비 작업 예제 :
Results.Add(nameof(this.GetExecutingMethod()), result);
가능하면 Reflection을 사용하고 싶지 않습니다.
UPDATE
(제안)이 아닌 this question의 중복. 나는 현재 메서드 이름을 얻기 위해 (!) reflection을 사용하지 않고 nameof
을 명시 적으로 사용할 수 있는지 묻는다.
Results.Add(new StackTrace().GetFrame(0).GetMethod().Name, result);
그리고 왜 이것을 사용하지 마십시오 : http://stackoverflow.com/questions/44153/can-you-use-reflection-to-find-the-name-of-the-currently-executing-method? – HimBromBeere
'StackTrace'를 사용하면 정보를 얻을 수 있지만 느립니다. 자동으로 무언가를 이루려면 코드 생성 (예 : 컴파일러로 실행되어 다른 것으로 대체되는 도구) 또는 AOP ([this] (http://stackoverflow.com/q/25803/1997232) 참조)를 사용할 수 있습니다. – Sinatr
그렇지 않습니까? 'System.Reflection.MethodInfo.GetCurrentMethod(). Name ' – Zorkind