我想編寫一個Visual Studio宏或類似的東西,它可以獲取函數名稱並插入錯誤報告部分中的預設位置。它更清晰,如果你看看例子PreBuild中插入函數名稱
Class SampleClass
{
public void FunctionA()
{
try
{
//Do some work here
}
catch (Exception ex)
{
Logger.WriteLine(LogLevelEnum.Error, "SampleClass", "FunctionA Failed");
Logger.WriteLine(LogLevelEnum.Error, "FunctionA", ex.ToString());
}
finally
{
}
}
}
所以,我遵循了我的共同庫的大多數關鍵功能的類似模式。我希望能夠在預建期間將「FunctionA」插入日誌記錄部分,這樣我就不必記住在複製和粘貼後輸入正確的名稱或忘記重命名它。可以從工具欄手動調用或通過快捷鍵。
那麼,我應該從哪裏開始?
注意: 我在.Net中被認爲是中級,已經在C#和VB中寫了3年多了,但是我對宏很新,不介意學習。 不要擔心代碼本身和異常,這只是一個例子。編輯: 感謝Ovidiu Pacurar和cfeduke。我在這裏想要的是改變和忘記的一種方式。即使不拋出異常,PostSharp也會在每個函數上產生開銷。從堆棧跟蹤挖掘是可行的,但在某些時候,我還想僅僅記錄「FunctionA Failed」而不花費太多處理來獲取堆棧跟蹤。此外,如果庫被混淆,堆棧跟蹤將是神祕的。
實際上還有一個需要這個功能,我忘了提前。當庫準備交付時,我想通過引用一個表將所有函數名改爲函數代碼,「FunctionA」可能是「0001」,以解決「混淆」日誌問題。