从catch块向客户端发送格式化的错误消息

时间:2012-06-27 12:06:53

标签: c# asp.net-web-api

我正在使用以下代码从过滤器(ActionFilterAttribute)向客户端发送错误消息。

catch (Exception)
 {
    var response = context.Request.CreateResponse(httpStatusCode.Unauthorized);
    response.Content = new StringContent("User with api key is not valid");
    context.Response = response;
 }

但问题是它只以纯文本形式发出。我想把它作为当前格式化程序的格式发送。像json或xml一样。

我知道这是因为我正在使用StringContent()。但是我们如何使用自定义Error对象编写? 比如,以下任何一个都不起作用:

response.Content = new Error({Message = "User with api key is not valid"});

我们如何为此编写代码?提前谢谢。

1 个答案:

答案 0 :(得分:8)

Ya,我找到了正确的写法语法。我们可以这样写:

catch (Exception)
{
    var response = context.Request.CreateResponse(HttpStatusCode.NotFound, 
                        new Error { Message = "User with api key is not valid"});
    context.Response = response; 
}