我正在使用全局 ErrorHandler 过滤器来记录未处理的异常,但我也希望能够使用相同的处理程序从 catch 块中记录已处理的异常。
我想访问全局过滤器并按照配置执行 ErrorHandler,但我在执行此操作时遇到了一些困难。我尝试了以下方法,但 Resharper 告诉我过滤器永远不可能是我的 ErrorLogFilter。
foreach (var filter in GlobalFilters.Filters)
{
if (filter is ErrorLogFilter) // Static analysis tells me this can never be an ErrorLogFilter
{
// want to execute the filter
}
}
ErrorLogFilter 被添加到全局过滤器中,如下所示:
GlobalFilters.Filters.Add(new ErrorLogFilter(provider));
ErrorLogFilter(作为 Elfar 的一部分,类似于 Elmah,但用于 MVC)定义为:
public class ErrorLogFilter : FilterAttribute, IExceptionFilter
关于如何做到这一点的任何建议?