Один из способов справиться с этим (!) - это вызвать метод, который вы вызываете в catch, который будет записывать параметры, передаваемые в исключение.Просто передайте исключение, и регистратор запишет информацию.
[LogParameters(LogLevel.Error)]
private static void Error(Exception ex) { }
public class LogParameters : OnMethodBoundaryAspect {
public override void OnEntry(MethodExcutionArgs args) {
for (int i=0; i<args.Arguments.Count; i++) {
// Get argument from args.Arguments.GetArgument(i)
}
}
}
Используя OnEntry
настраиваемый метод OnMethodBoundaryAspect
, вы можете записать информацию об исключении, вызвав метод и передав исключение.,Метод на самом деле ничего не должен делать, он просто пустышка для аспекта, который нужно обернуть и зарегистрировать параметр исключения.