更改WebFaultException的Content-Type

时间:2012-07-31 00:37:38

标签: c# wcf wcf-rest

我有一个WCF REST服务,其接口方法用[WebGet(..., ResponseFormat = WebMessageFormat.Json)]注释,通常提供JSON格式的响应。现在代码表示错误:

throw new WebFaultException<string>("helpful message",HttpStatusCode.BadRequest);

问题是响应上的Content-Type仍然是application/json,即使正文只是纯文本而不是JSON编码。我可以帮助生成我将设置WebOperationContext.Current.OutgoingResponse.ContentType = "text/plain";的错误异常,但是如果在WCF层中有一个快速修复,那么只会为这些类型的异常设置内容类型。最干净的方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以继承WebFaultException并在项目中使用它。

public class MyWebFaultException<T>:WebFaultException<T>
{
    public MyWebFaultException(T message)
        : base(message, HttpStatusCode.BadRequest)
    {
        WebOperationContext.Current.OutgoingResponse.ContentType = "text/plain";
    }
}