【问题标题】:Multiple implementations of IExceptionHandlerIExceptionHandler 的多种实现
【发布时间】:2015-05-08 21:03:22
【问题描述】:

在 WebAPI 中处理 IExceptionHandler 的多个实现的最佳方法是什么?

config.Services.Replace(typeof(IExceptionHandler), new ExceptionHandlerFilter());
config.Services.Add(typeof(IExceptionHandler), new ValidationExceptionHandlerFilter());

当尝试注册多个实现时,启动会抛出异常:

不支持服务类型 IExceptionHandler。\r\n参数名称:serviceType

但 API 建议支持多个处理程序,因为有一个 ShouldHandle 属性可以覆盖 ExceptionHandler 类。

【问题讨论】:

    标签: asp.net-web-api asp.net-web-api2


    【解决方案1】:

    你不能注册更多IExceptionHandler

    我们支持注册多个异常记录器,但只支持一个异常处理程序。

    来源:Global Error Handling in ASP.NET Web API

    ShouldHandle 属性用于仅获取堆栈顶部的异常

    【讨论】:

    • 是的,太可惜了,不得不使用处理程序作为工厂来解决这个问题,并在一堆类中查找异常并让正确的类处理它。最后效果很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 2011-11-29
    • 1970-01-01
    • 2015-10-06
    相关资源
    最近更新 更多