2015-09-30 46 views
0

我已配置帶有IAutofacExceptionFilter的webapi以獲取異常詳細信息。註冊的所有東西autofac.config用於autofac的Api異常過濾器

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可以從一個容器解析服務控制器類型。

回答

0

你應該做這樣的事情,使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

+0

我已經使用移動服務。所以一旦構建器被構建,就解決依賴關係。並得到這個錯誤 –