public IContainer ConfigureDIAutofac() { var containerBuilder = new ContainerBuilder(); var path = AppDomain.CurrentDomain.BaseDirectory; var assemblies = Directory.GetFiles(path, "DReporting.*.dll").Select(Assembly.LoadFrom).ToArray(); containerBuilder.RegisterModule(new AutofacModule()); containerBuilder.RegisterAssemblyModules(assemblies); var autofacSettings = new AutoFacSettings(containerBuilder); var resolver = new AutofacDependencyResolver(autofacSettings); resolver.Initialize(); var baasicDIModules = assemblies.SelectMany(x => x.GetTypes()) .Where(x => typeof(IDIModule).IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract && x.GetConstructor(Type.EmptyTypes) != null) .Select(x => Activator.CreateInstance(x) as IDIModule) .ToArray(); foreach (var instance in baasicDIModules) { instance.Load(resolver); } autofacSettings.Build(); return(autofacSettings.Container); }