【问题标题】:Api Exception filters for autofac用于 autofac 的 Api 异常过滤器
【发布时间】:2015-09-30 08:58:10
【问题描述】:

我已使用IAutofacExceptionFilter 配置 webapi 以获取异常详细信息。在 autofac.config 中注册了所有的东西

HttpConfiguration config = ServiceConfig.Initialize(new ConfigBuilder(options, (configuration, builder) =>
{  
       builder.RegisterType<ErrorLoggingExceptionFilter>()
       .AsWebApiExceptionFilterFor<BaseController>()
       .InstancePerApiRequest();

       builder.RegisterWebApiFilterProvider(GlobalConfiguration.Configuration);
       //builder.RegisterType<ErrorLoggingExceptionFilter>()
       //.AsWebApiExceptionFilterFor<BaseController>().SingleInstance();

       builder.OverrideWebApiActionFilterFor<BaseController>();
       builder.RegisterSource(
       new AnyConcreteTypeNotAlreadyRegisteredSource(t => 
         !(t.IsGenericType && t.GetGenericTypeDefinition() == typeof(Meta<>))
    ));
}
 var serviceResolver = (AutofacWebApiDependencyResolver)config.DependencyResolver;

但它给了我这样的错误

AutofacWebApiDependencyResolver 必须配置为 Web API 的依赖解析器,AutofacControllerConfigurationAttribute 才能从容器中解析控制器类型的服务。

【问题讨论】:

    标签: c# asp.net-web-api autofac


    【解决方案1】:

    您应该这样做以使 AutofacWebApiDependencyResolver 成为您的默认 Web API 依赖解析器:

    // Set the dependency resolver to be Autofac.
    var builder = new ContainerBuilder();
    var container = builder.Build();
    config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
    

    请参阅Autofac documentation 了解更多信息。

    【讨论】:

    • 我正在使用移动服务。所以一旦构建了构建器就解决依赖关系。并收到此错误
    猜你喜欢
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 2013-09-04
    • 2011-05-15
    • 1970-01-01
    • 2016-04-03
    相关资源
    最近更新 更多