c#에서 기본으로 제공되는 특성을 사용해 호출자 정보를 가지고 올 수 있는데 이는 특성과 선택적 매개변수로 구현되어 있다.
특성 | 설명 |
---|---|
CallerMemberName | 메서드를 호출한 메서드 이름 |
CallerFilePath | 메서드를 호출한 소스코드 파일 경로 |
CallerLineNumber | 메서드를 호출한 소스코드 라인 번호 |
internal class Program
{
public static void Main(string[] args)
{
string msg = "Message";
Message(msg);
Console.ReadLine();
}
public static void Message(string msg, [CallerMemberName] string callerMemberName = "", [CallerFilePath] string callerFilePath = "", [CallerLineNumber] int callerLineNumber = 0)
{
Console.WriteLine($"[{callerMemberName}:{callerFilePath}:{callerLineNumber}]-{msg}");
}
}
// output
// [Main:C:\tfs\TechDev_Products\M365 Manager\srcs\O365M.TestBatch\Program.cs:23]-Message