C# 調用者信息獲取


     做日志組件時,常常會記錄調用者信息,通常都是通過反射來獲取相應信息。不過.Net 4.5引入了三個新的特性,即CallerFilePathAttribute,CallerLineNumberAttribute和CallerMemberNameAttribute。這三個特性都只能應用於參數並且只有在應用與可選參數時才有用。其理念非常簡單:如果調用點沒有提供實參,則編譯器可使用當前文件,行數或成員名來作為實參,而不是使用常規的默認值,如果調用者提供了實參,編譯器則將忽略這些特性。

 1 class ProgramCallerLineNumberAttribute
 2     {
 3         static void Main(string[] args)
 4         {
 5             Log.LogWrite("test");
 6             Console.ReadKey();
 7         }
 8     }
 9 
10     class Log
11     {
12         public  static void LogWrite(string logInfo,
13             [CallerFilePath] string file=null,
14             [CallerLineNumber] int  line=0,
15             [CallerMemberName] string member=null
16             )
17         {
18             Console.WriteLine(logInfo);
19             Console.WriteLine(file);
20             Console.WriteLine(line);
21             Console.WriteLine(member);
22 
23         }
24     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM