private void InspectAssembly(Assembly assembly)
 {
     try
     {
         var types = assembly.DefinedTypes;
         foreach (var typeInfo in types)
         {
             if (typeInfo.IsClass && typeInfo.IsAbstract == false &&
                 typeInfo.ImplementedInterfaces.Contains(typeof(TModule)))
             {
                 Modules.Add((TModule)_compositionModuleCreationStrategy.CreateCompositionModule(typeInfo.AsType()));
             }
         }
     }
     //TODO: proper exception handling
     catch (Exception)
     {
     }
 }
 private void InspectAssembly(Assembly assembly)
 {
     try
     {
         var innerExceptions = new List <ModuleCreationException>();
         var types           = _typeInfoExtractionService.GetTypes(assembly);
         foreach (var typeInfo in types)
         {
             try
             {
                 if (_typeInfoExtractionService.IsCompositionModule(typeInfo, typeof(TModule)))
                 {
                     Modules.Add(
                         (TModule)_compositionModuleCreationStrategy.CreateCompositionModule(
                             typeInfo.AsType()));
                 }
             }
             catch (Exception e)
             {
                 innerExceptions.Add(new ModuleCreationException(typeInfo, e));
             }
         }
         if (innerExceptions.Count > 0)
         {
             throw new AggregateModuleCreationException(innerExceptions.ToArray());
         }
     }
     catch (AggregateModuleCreationException)
     {
         throw;
     }
     catch (Exception ex)
     {
         throw new AssemblyInspectionException(assembly.FullName, ex);
     }
 }