C# asp.net web api中全局自定义错误处理

C# asp.net web api中全局自定义错误处理,c#,asp.net,.net,asp.net-web-api,asp.net-web-api2,C#,Asp.net,.net,Asp.net Web Api,Asp.net Web Api2,我正在使用asp.net web api [Route("api/employee")] [HttpPost] public dynamic GetData(EmployeeModel model) { EmployeeService emp = new EmployeeService(); emp.GetData(model); } 这就是我全局处理错误的方式: public class ExceptionFilter : ExceptionFilterAttribute

我正在使用asp.net web api

[Route("api/employee")]
[HttpPost]
public dynamic GetData(EmployeeModel model)
{
     EmployeeService emp = new EmployeeService();
     emp.GetData(model);
}
这就是我全局处理错误的方式:

public class ExceptionFilter : ExceptionFilterAttribute
{
    public override void OnException(HttpActionExecutedContext context)
    {
          //Code to log the exception goes here:
    }
 }
在WebApiConfig.cs文件中,我正在注册过滤器:

 public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
               ....
               config.Filters.Add(new ExceptionFilter());
        } 
    }
无论何时出现异常,异常过滤器都能够捕获异常&它可以记录异常。这一切都很好

我想要什么:对于每个异常,我都想记录特定的详细信息,这些详细信息在各自的方法中可用,但如何将它们传递给异常过滤器?我看到的唯一解决方法是在各个方法中添加try-catch块,并记录异常和特定细节


我想捕获的另一件事是每个请求的请求对象。在这种情况下,它将是ExployeeModel。即使我以某种方式获得了请求对象,如何将类型转换为正确的类型。一个端点可以预期EmployeeModel,另一个端点可以预期DepartmentModel

你具体想传递哪些不在上下文中的信息?@Jasen:当我收到输入(在本例中为EmployeeModel)时,我会进行一些计算,比如说对员工进行税务计算&这是分多个步骤进行的。错误可能发生在任何一步,当这种情况发生时,我想记录当前状态&几乎没有其他信息。