处理ASP.NET Web API XML响应中的特殊字符和序列化异常

时间:2013-09-23 19:05:50

标签: asp.net-web-api xmlserializer

我使用以下配置更改使ASP.NET Web API在其默认DataContractSerializer上使用XmlSerializer。

GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true

GlobalConfiguration.Configuration.Formatters.XmlFormatter.Indent = true

Xml序列化问题:

Web API的JSON响应在下面给出的值下工作正常,但在请求XML时失败。

enter image description here

我尝试了什么:使用

将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());

当ApiController的操作抛出显式异常时,调用过滤器'OnException方法,而不是在我得到序列化异常时?

我有两个问题

  1. 如何避免在响应中编码特殊字符时遇到问题?
  2. 如何捕获这些序列化异常。

0 个答案:

没有答案