我想在dotnet核心應用程序中獲取當前執行方法的名稱。在dotnet核心中獲取當前執行方法的名稱
有很多的如何做到這一點與普通的C#如
然而,對於這兩種方法的API似乎不是有核心尚未例子(看到https://github.com/dotnet/corefx/issues/1420)
有沒有另一種方式,我可以在.net核心執行方法的名稱?
我想在dotnet核心應用程序中獲取當前執行方法的名稱。在dotnet核心中獲取當前執行方法的名稱
有很多的如何做到這一點與普通的C#如
然而,對於這兩種方法的API似乎不是有核心尚未例子(看到https://github.com/dotnet/corefx/issues/1420)
有沒有另一種方式,我可以在.net核心執行方法的名稱?
CallerMemberNameAttribute允許您獲取調用方法或屬性名稱的方法。
public void DoProcessing()
{
TraceMessage("Something happened.");
}
public void TraceMessage(string message,
[System.Runtime.CompilerServices.CallerMemberName] string memberName = "",
[System.Runtime.CompilerServices.CallerFilePath] string sourceFilePath = "",
[System.Runtime.CompilerServices.CallerLineNumber] int sourceLineNumber = 0)
{
System.Diagnostics.Trace.WriteLine("message: " + message);
System.Diagnostics.Trace.WriteLine("member name: " + memberName);
System.Diagnostics.Trace.WriteLine("source file path: " + sourceFilePath);
System.Diagnostics.Trace.WriteLine("source line number: " + sourceLineNumber);
}
// Sample Output:
// message: Something happened.
// member name: DoProcessing
// source file path: c:\Users\username\Documents\Visual Studio 2012\Projects\CallerInfoCS\CallerInfoCS\Form1.cs
// source line number: 31
多數民衆贊成真棒,謝謝 –
最簡單的方法是使用:
System.Reflection.MethodBase.GetCurrentMethod()名稱
爲什麼不直接使用'nameof(YourCurrentMethod)'? –
此外,一個更相關的GitHub問題將是https://github.com/dotnet/corefx/issues/12496 –
'nameof(YourCurrentMethod)'並不比使用字符串更好,感謝問題鏈接看起來像該方法也將在未來的版本中發佈。也許答案是不可能atm –