简体   繁体   中英

Api Exception filters for autofac

I have Configured webapi with IAutofacExceptionFilter to get the Exception Details. registered all the things in 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;

but it gives me error like

The AutofacWebApiDependencyResolver must be configured as the dependency resolver for Web API before the AutofacControllerConfigurationAttribute can resolve services from the container for a controller type.

You should do something like this to make AutofacWebApiDependencyResolver your default Web API dependency resolver :

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

See Autofac documentation for more info.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM