Last active
September 10, 2015 10:06
-
-
Save melvinlee/f8c639eb40e23a1f75be to your computer and use it in GitHub Desktop.
ASP.NET MVC Autofac registration.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
internal class DependencyConfigure | |
{ | |
public static void Initialize() | |
{ | |
var builder = new ContainerBuilder(); | |
DependencyResolver.SetResolver(new AutofacDependencyResolver(RegisterServices(builder))); | |
} | |
private static IContainer RegisterServices(ContainerBuilder builder) | |
{ | |
builder.RegisterAssemblyTypes(typeof(MvcApplication).Assembly).PropertiesAutowired(); | |
//deal with your dependencies here | |
builder.RegisterType<DataContext>().As<IDbContext>().InstancePerHttpRequest(); | |
builder.RegisterAssemblyTypes(Assembly.Load("OWDN")); | |
builder.Register(c => new SmdrNativeRepository(() => new SqlConnection( ConnectionSetting.SmdrConnectionString))); | |
builder.Register(c => new CallsNativeRepository(() => new SqlConnection(ConnectionSetting.ConnectionString))); | |
builder.RegisterAssemblyTypes(Assembly.Load("OWD")); | |
builder.RegisterAssemblyTypes(Assembly.Load("OWD")).Where(t => t.Name.Contains("Repository")).AsImplementedInterfaces(); | |
// scan and register IReport implementations as Named services | |
builder.RegisterAssemblyTypes(typeof(MvcApplication).Assembly).Where(t => t.IsAssignableTo<IReport>()).Named<IReport>(x => x.Name).AsImplementedInterfaces().InstancePerLifetimeScope(); | |
var container = builder.Build(); | |
var postContainerBuilder = new ContainerBuilder(); | |
postContainerBuilder.Register(c => container); | |
postContainerBuilder.Update(container); | |
return container; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment