2017-01-25 2 views
0

Я использую простой autofac свой рабочий, но в опции проверки модуля из сборки он выбрал исключение времени выполнения в Web Api.autofac module config config WebApi N Layer

Простой рабочий код в Global.asax.cs

var builder = new ContainerBuilder(); 
var config = GlobalConfiguration.Configuration; 
builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); 
builder.RegisterWebApiFilterProvider(config); 
builder.RegisterType<ReportRepository>().As<IReportRepository>(); 
builder.RegisterType<UserRepository>().As<IUserRepository>(); 
.... 
var container = builder.Build(); 
config.DependencyResolver = new AutofacWebApiDependencyResolver(container); 

Модуль сканирования от Ассамблеи в другом слое

public class RepositoryModule : Module 
{ 
    protected override void Load(ContainerBuilder builder) 
    { 
     //var assembly = AppDomain.CurrentDomain.GetAssemblies(); 
     var assembly = System.Reflection.Assembly.GetExecutingAssembly(); 

     builder.RegisterAssemblyTypes(assembly) 
       .Where(a => a.Name.EndsWith("Repository")) 
       .AsImplementedInterfaces() 
       .InstancePerLifetimeScope(); 
     base.Load(builder); 
    } 
} 

В Global.asax.cs

var config = GlobalConfiguration.Configuration; 
var builder1 = new ContainerBuilder(); 
builder1.RegisterApiControllers(Assembly.GetExecutingAssembly()); 
builder1.RegisterWebApiFilterProvider(config); 
builder1.RegisterModule(new RepositoryModule()); 
using (var container1 = builder1.Build()) 
{ 
    config.DependencyResolver = new AutofacWebApiDependencyResolver(container1); 
} 

находка проблемы в это или предложить любой другой простой метод.

Спасибо ...

+0

Можете ли вы предоставить подробную информацию об исключении? –

ответ

0

Удалить использовать(). Вы утилизируете контейнер.

Смежные вопросы