BondInEtwLinqpadDriver.BondDynamicDriver.GetAssemblyTypes C# (CSharp) Method

GetAssemblyTypes() private static method

private static GetAssemblyTypes ( string targetPath ) : System.Type[]
targetPath string
return System.Type[]
        private static Type[] GetAssemblyTypes(string targetPath)
        {
            var assemblies = new[] { @"*.dll" }.
                SelectMany(i => Directory.GetFiles(targetPath, i)).ToArray();

            var types = new List<Type>();
            foreach (var assemblyName in assemblies)
            {
                try
                {
                    var assembly = Assembly.LoadFrom(assemblyName);
                    types.AddRange(assembly.GetTypes());
                }
                catch (ReflectionTypeLoadException exception)
                {
                    var stringBuilder = new StringBuilder();

                    stringBuilder.AppendLine(exception.ToString());

                    foreach (var loaderException in exception.LoaderExceptions)
                    {
                        stringBuilder.AppendLine(loaderException.ToString());
                    }

                    MessageBox.Show(stringBuilder.ToString());
                    throw;
                }
                catch (BadImageFormatException e)
                {
                    // e.g. x64 assemblies.
                    MessageBox.Show(e.ToString());
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString());
                    throw;
                }
            }

            var assemblyTypes = types.ToArray();
            return assemblyTypes;
        }