Я создал пользовательский ExceptionFilter для перехвата всех исключений метода действия контроллера WebApi. Можно ли получить метод действия в методе исключения и повторно вызвать его оттуда после выполнения требуемого исправления кода
Вот код:
public class ExceptionHandlerFilterAttribute : ExceptionFilterAttribute
{
public override void OnException(HttpActionExecutedContext context)
{
try
{
var ex = context.Exception;
string ControllerName = string.Format("{0}Controller-{1}", context.ActionContext.ControllerContext.ControllerDescriptor.ControllerName, context.ActionContext.ActionDescriptor.ActionName);
SPConnection.InsertRecordToTableErrorLog(ex.Message, ex.StackTrace, ControllerName, ex.GetType().Name);
**SPConnection.SharepointClientContext = null;**
**// reinvoke ActionMethod here??**
base.OnException(context);
}
catch (Exception ex) {
throw ex;
}
}
}
Метод Api Controller который сгенерирует необработанное исключение:
[Authorize]
[HttpPost]
[Route("update")]
public HttpResponseMessage update(Update up)
{
bool result = _iMembersBL.Update(up);
if (result)
return Request.CreateResponse(HttpStatusCode.OK, "Success");
else
return Request.CreateResponse(HttpStatusCode.OK, "Failed");
}