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