pensé que me gustaría añadir un poco de ayuda a aquellos que luchan con esto en mvc5 y la API de Web 2.
primero Añadir paquetes NuGet
- Autofac
- Autofac asp.net mvc 5 integración
- Autofac asp.net web api 2.x integración
en complemento global en Application_Start (o como app_start clase) añadir llamada a la clase de abajo
AutofacConfig.RegisterAutoFac();
ahora añadir esta clase bajo App_start
using System.Reflection;
using System.Web.Http;
using System.Web.Http.Controllers;
using System.Web.Mvc;
using Autofac;
using Autofac.Integration.Mvc;
using Autofac.Integration.WebApi;
namespace Example1.Web
{
public class AutofacConfig
{
public static IContainer RegisterAutoFac()
{
var builder = new ContainerBuilder();
AddMvcRegistrations(builder);
AddRegisterations(builder);
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container);
return container;
}
private static void AddMvcRegistrations(ContainerBuilder builder)
{
//mvc
builder.RegisterControllers(Assembly.GetExecutingAssembly());
builder.RegisterAssemblyModules(Assembly.GetExecutingAssembly());
builder.RegisterModelBinders(Assembly.GetExecutingAssembly());
builder.RegisterModelBinderProvider();
//web api
builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()).PropertiesAutowired();
builder.RegisterModule<AutofacWebTypesModule>();
}
private static void AddRegisterations(ContainerBuilder builder)
{
//builder.RegisterModule(new MyCustomerWebAutoFacModule());
}
}
}
A partir de ahora para cada nuevo el montaje se agrega al proyecto de añadir un nuevo módulo y luego se registra en el módulo de la función AddRegisterations (ejemplo dado)
Nota:
Devolví el contenedor, esto no es necesario.
Este escanea el conjunto actual de los módulos así que no añadir módulos locales en AddRegisterations de lo contrario se registrará todo dos veces.
Tengo una implementación mínima aquí: http://byterot.blogspot.co.uk/2012/04/aspnet-web-api-series-part-4-dependency.html – Aliostad