2016-04-14 27 views
-1

我已經使用系列化來記錄作爲參數傳遞給某些方法的對象,試圖手動執行此操作以及我的項目中的每種方法,甚至爲此目的的專用測試項目似乎過多,如何記錄在.Net中調用的類方法和參數的名稱?

什麼框架/工具/編碼方法可以用於記錄類方法的名稱和它在.Net中僅用於我的應用程序中的方法調用的參數?

或者其他東西,允許執行的可視化。

類A.MethodB調用OBJ =對象A,名稱= 「ABC」 類X.MethodZ調用OBJ = ObjectY,年齡= 34 .... 類A.MethodB返回ObjectZ 。 。 。

或重建後的執行步驟,而無需顯式編碼登錄到應用程序的一些方式

+1

投票結束,因爲要求提出建議在SO上是禁止的。我從來沒有做過,但我聽說postsharp有一個有趣的事情:https://www.postsharp.net/diagnostics/net-logging – spender

+1

可能您正在尋找這個題外話題的搜索詞是「 * profiler *「 –

+0

@AlexeiLevenkov:謝謝你,將使用」探查器「進行搜索,我不明白這是關閉的話題! – Arjang

回答

1

在.NET 4.5,你可以裝飾一個方法的默認參數與[CallerMemberName]屬性,它具有調用的名稱方法。您可以使用[CallerFilePath]屬性來獲取調用類。在(對於當前的方法,1代表調用方法,2表示呼叫者的呼叫方法等。0),使用反射偏移Ñ

public void Foo([CallerMemberName] string callingMethodName = null, [CallerFilePath] string callingClassName = null) 
{ 
    // Calling Method Name 
    Console.WriteLine(callingMethodName); 

    // Calling Class Name 
    Console.WriteLine(System.IO.Path.GetFileNameWithoutExtension(callingClassName); 

} 
相關問題