My AutoFac implementation doesn't appear to be injecting any concrete instances of my interfaces into my API controllers.
Inspecting the Container object it does have a awareness of the UserRepo - it just does nothing with it.
Using latest version of AutoFac (Nuget) and AutoFac/WebAPI and Autofc/MVC5.
public class ContainerConfig
{
public static void RegisterContainer()
{
var builder = new ContainerBuilder();
builder.RegisterApiControllers();
//var asm = typeof(IUserRepository).Assembly;
builder.RegisterAssemblyTypes(typeof(UserRepository).Assembly)
.Where(x => x.Name.EndsWith("Repository")).AsImplementedInterfaces();
var container = builder.Build();
GlobalConfiguration.Configuration.DependencyResolver= new AutofacWebApiDependencyResolver(container);
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
}
}
public class UsersController : ApiController
{
IUserRepository _db;
public UsersController(IUserRepository db)
{
_db = db;
}
}
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
Database.SetInitializer<FindABriefContext>(new DbInit());
ContainerConfig.RegisterContainer();
}
}
public class UserRepository : IUserRepository { DbContext db = null;
public UserRepository(DbContext context)
{
db = context;
}
}