Autofac in MVC
How to use Autofac?
Add Autofac and Autofac.Mvc5 References from NuGet
Create ContainerBuilder and register components in application startup
A. Add one line code in Application_Start() function of global.asax file.
DependencyConfig.RegisterDependencyResolvers();B. Add the DependencyConfig class in the folder App_Start:
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>();
}
}3. Add Interface
4. Add Service code
5. Call service in the controller
Reference:
https://dependencyinjector.wordpress.com/2014/12/19/setting-up-dependency-injection-in-asp-net-mvc-with-autofac/https://www.codeproject.com/Articles/808894/IoC-in-ASP-NET-MVC-using-Autofac
Last updated
Was this helpful?