C# 如何从OneException方法发送自定义对象?

C# 如何从OneException方法发送自定义对象?,c#,asp.net,asp.net-mvc,asp.net-web-api2,C#,Asp.net,Asp.net Mvc,Asp.net Web Api2,这是传递给任何asp.net web api的模型的筛选器 它就像一个符咒 但在我的例子中,我想要的是将自定义对象(奇怪的需要)返回给用户,如: public override void OnException( System.Web.Http.Filters.HttpActionExecutedContext actionExecutedContext) { if (actionExecutedContext.Exception != null)

这是传递给任何asp.net web api的模型的筛选器

它就像一个符咒

但在我的例子中,我想要的是将自定义对象(奇怪的需要)返回给用户,如:

public override void OnException(
         System.Web.Http.Filters.HttpActionExecutedContext actionExecutedContext)
    {
        if (actionExecutedContext.Exception != null)
            Elmah.ErrorSignal.FromCurrentContext().Raise(actionExecutedContext.Exception);
        base.OnException(actionExecutedContext);


        throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError)
        {
            Content = new StringContent(actionExecutedContext.Exception.Message),
            ReasonPhrase = "Deadly Exception",
        });
    }
我想做的是(如果可能的话):

我想从此函数发回对象,但此方法的返回类型为
void

我知道
HttpResponseMessage
对象可以被抛出,但我想用定制的方式来做


我该怎么做呢?

我想您应该将该类作为JSON返回

您可以做的是仍然使用
StringContent
构造函数,但传入一个JSON序列化字符串。您可以使用Newtonsoft.Json作为序列化

 public override void OnException(
         System.Web.Http.Filters.HttpActionExecutedContext actionExecutedContext)
    {



        ErrorModel er = new ErrorModel(); //////////// object of class


        if (actionExecutedContext.Exception != null)

         er.StatusCode =200
         er.ErrorMsg="My Custom Msg" 

        // return er object 

    }

投票结束了。。。如果你能帮我解决上面提到的下一个问题…谢谢。我不确定答案是什么。我来看看。
 public override void OnException(
         System.Web.Http.Filters.HttpActionExecutedContext actionExecutedContext)
    {



        ErrorModel er = new ErrorModel(); //////////// object of class


        if (actionExecutedContext.Exception != null)

         er.StatusCode =200
         er.ErrorMsg="My Custom Msg" 

        // return er object 

    }
throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError)
{
    Content = new StringContent(JsonConvert.SerializeObject(yourObject))
});