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
时,它告诉我没有覆盖。和mybase.OnException(filterContext)代码>将不再工作。如果需要的话?@TheDizzle在本例中,您需要将System.Web.Mvc.dll
添加到您的软件包中。在添加引用时,我不认为这是一个选项