Autofac in MVC
How to use Autofac?
DependencyConfig.RegisterDependencyResolvers();public static class DependencyConfig
{
public static IContainer RegisterDependencyResolvers()
{
ContainerBuilder builder = new ContainerBuilder();
RegisterDependencyMappingDefaults(builder);
RegisterDependencyMappingOverrides(builder);
IContainer container = builder.Build();
// Set Up MVC Dependency Resolver
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
// Set Up WebAPI Resolver
GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container);
return container;
}
private static void RegisterDependencyMappingDefaults(ContainerBuilder builder)
{
Assembly coreAssembly = Assembly.GetAssembly(typeof(IStateManager));
Assembly webAssembly = Assembly.GetAssembly(typeof(MvcApplication));
builder.RegisterAssemblyTypes(coreAssembly).AsImplementedInterfaces().InstancePerRequest();
builder.RegisterAssemblyTypes(webAssembly).AsImplementedInterfaces().InstancePerRequest();
builder.RegisterControllers(webAssembly);
builder.RegisterModule(new AutofacWebTypesModule());
}
private static void RegisterDependencyMappingOverrides(ContainerBuilder builder)
{
// builder.RegisterType<WebSettingManager>().AsImplementedInterfaces().SingleInstance();
builder.RegisterType<SearchDataService>().As<ISearchDataService>();
}
}Last updated