DataContractSerializer
我使用以下配置更改使 ASP.NET Web API 使用 XmlSerializer 而非默认值。
GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true
GlobalConfiguration.Configuration.Formatters.XmlFormatter.Indent = true
XML序列化问题:
Web API 的 JSON 响应适用于下面给出的值,但在请求 XML 时失败。
我尝试了什么:使用将 SupportedEncodings 添加到 XMLSerializer
GlobalConfiguration.Configuration.Formatters.XmlFormatter
.SupportedEncodings.Clear();
GlobalConfiguration.Configuration.Formatters.XmlFormatter
.SupportedEncodings.Add(new UnicodeEncoding());
处理异常:
我尝试通过添加一个来捕获序列化异常ExceptionFilterAttribute
public class ErrorHandlingFilter : ExceptionFilterAttribute
{
public override void OnException(
HttpActionExecutedContext actionExecutedContext)
{
....handle exception
}
}
并将过滤器注册为
config.Filters.Add(new ErrorHandlingFilter());
OnException
当 ApiController 的操作引发显式异常时调用过滤器的方法,而不是当我得到序列化异常时?
我有两部分的问题
- 如何避免在响应中对特殊字符进行编码时出现问题?
- 我怎样才能捕捉到这些序列化异常。