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);
}
}