13
我有一個簡單的PostSharp日誌記錄屬性:如何向PostSharp屬性添加參數?
[Serializable]
public class MethodLoggingAttribute : OnMethodBoundaryAspect
{
private ILog _logger;
public override void OnEntry(MethodExecutionEventArgs eventArgs)
{
_logger = LogManager.GetLogger(eventArgs.Method.DeclaringType.ToString());
_logger.DebugFormat("Entered {0}", eventArgs.Method.Name);
}
}
我想使加入的內容與方法參數的日誌條目信息,此屬性更靈活,但只有當它的需要。
[Serializable]
public class MethodLoggingAttribute : OnMethodBoundaryAspect
{
private ILog _logger;
public override void OnEntry(MethodExecutionEventArgs eventArgs)
{
_logger = LogManager.GetLogger(eventArgs.Method.DeclaringType.ToString());
// if ShowParameters = true
_logger.DebugFormat("Entered {0} with args:{1}", eventArgs.Method.Name, args);
// else
_logger.DebugFormat("Entered {0}", eventArgs.Method.Name);
// endif
}
}
與IF的僞代碼是我不知道該怎麼做。我如何將它傳遞給屬性?我希望它看起來是這樣,但我不知道如何處理它的屬性裏面的代碼:
[MethodLogging(ShowParameters=true)]
public void SomeCrazyMethod(int CustomerId, string SecretName) {...}
很好的答案。有沒有方法可以在屬性應用的方法中訪問和設置屬性? – 2016-01-28 19:22:46