Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用筛选器但缺少引用的包中的错误处理_C# - Fatal编程技术网

C# 使用筛选器但缺少引用的包中的错误处理

C# 使用筛选器但缺少引用的包中的错误处理,c#,C#,我试图通过在方法上方添加一个[Attribute]来创建一个可以处理方法错误的包 我的包裹里有 public class RequestLogFilter : ExceptionFilterAttribute { public override void OnException(HttpActionExecutedContext filterContext) { Log(filterContext.Exception); base.OnException(filte

我试图通过在方法上方添加一个
[Attribute]
来创建一个可以处理方法错误的包

我的包裹里有

public class RequestLogFilter : ExceptionFilterAttribute
{
  public override void OnException(HttpActionExecutedContext filterContext)
  {
     Log(filterContext.Exception);

     base.OnException(filterContext);
  }

  private void Log(Exception exception)
  {
     //log exception here..

  }
}
当我尝试在我的MVC项目中使用它时

[RequestLogFilter]
  public async Task<ActionResult> Index()
[RequestLogFilter]
公共异步任务索引()
它说,
不能在这里访问内部类
。我的问题是,除了
ExceptionFilterAttribute
之外,还有其他装饰程序我应该使用吗?它说我需要引用System.Web.Http,但在我的MVC项目的references选项中没有这个选项


目标是,如果他们调用这种类型的过滤器,它将记录所述过滤器的任何异常。

在MVC项目中,您应该使用这种过滤器

public override void OnException(ExceptionContext context)
在WebAPI项目中

 public override void OnException(HttpActionExecutedContext filterContext)

尝试添加System.Web作为引用。是否引用了正确的
ExceptionFilterAttribute
?签名不同。我使用System.Web.Http.Filters引用了
我正在类库中执行重写。当我执行
ExceptionContext
时,它告诉我没有覆盖。和my
base.OnException(filterContext)将不再工作。如果需要的话?@TheDizzle在本例中,您需要将
System.Web.Mvc.dll
添加到您的软件包中。在添加引用时,我不认为这是一个选项