AshMind.Web.Mvc.ConfiguredMvcApplicationBase.DiscoverAllModules C# (CSharp) Method

DiscoverAllModules() protected method

protected DiscoverAllModules ( ContainerBuilder builder ) : void
builder Autofac.ContainerBuilder
return void
        protected virtual void DiscoverAllModules(ContainerBuilder builder)
        {
            Contract.Assume(Server != null);
            var path = Server.MapPath("~/bin");

            foreach (var file in Directory.GetFiles(path, "*.dll")) {
                if (!ShouldDiscoverModulesIn(file))
                    continue;

                var assembly = Assembly.LoadFrom(file);
                Contract.Assume(assembly != null);
                var modules = from type in assembly.GetTypes()
                              where typeof(IModule).IsAssignableFrom(type)
                              select (IModule)Activator.CreateInstance(type);

                modules.ForEach(builder.RegisterModule);
            }
        }