0
我正在使用Web API並實現委託處理程序。在委託處理程序的格式化程序中處理反序列化異常
我有一個自定義的Json序列化器/反序列化器,它在API配置中註冊爲格式化程序。
var globalFormatters = GlobalConfiguration.Configuration.Formatters;
var jsonFormatter = globalFormatters.JsonFormatter;
jsonFormatter.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented;
jsonFormatter.SerializerSettings.Converters.Add(...)
至於異常處理,我已經添加了一個ExceptionFilterAttribute,也增加其作爲配置的過濾器。
public class MethodAttributeExceptionHandling : ExceptionFilterAttribute
{
public override void OnException(HttpActionExecutedContext actionExecutedContext)
{
var errorHandler = new ErrorHandler();
var response = errorHandler.ProcessError(actionExecutedContext);
actionExecutedContext.Response = response;
}
}
這似乎很好地工作,直到我遇到了一個反序列化的例外, 這並沒有抓到我的過濾器。
我讀過異常處理文檔Here其中提到序列化異常沒有被過濾器捕獲(但它沒有提及序列化),我找不到任何解決方案來捕獲它並正確處理它。