From 20dd673967f7eeb8b4cf08439eb73fdd2ccf1b92 Mon Sep 17 00:00:00 2001 From: James South Date: Mon, 17 Feb 2014 10:25:11 +0000 Subject: [PATCH] v3.1.1.0 Fixes #36 Permissions issues within the DotNetOpenAuth library when used in conjunction with Mvc5 were causing a ReflectionTypeLoadException when attempting to autoload all plugins. Behaviour is now changed so that if this fails, plugins will load from the configuration instead. Former-commit-id: c6b35c7f09bb26f75b030d0b3aadf909498bc6a9 --- .../NET45/Config/ImageProcessorConfig.cs | 93 ++++++++---------- .../NET45/Properties/AssemblyInfo.cs | 4 +- src/Nuget/ImageProcessor.Web.3.1.1.0.nupkg | Bin 0 -> 48413 bytes 3 files changed, 44 insertions(+), 53 deletions(-) create mode 100644 src/Nuget/ImageProcessor.Web.3.1.1.0.nupkg diff --git a/src/ImageProcessor.Web/NET45/Config/ImageProcessorConfig.cs b/src/ImageProcessor.Web/NET45/Config/ImageProcessorConfig.cs index dcaf4f428..76c2a91f3 100644 --- a/src/ImageProcessor.Web/NET45/Config/ImageProcessorConfig.cs +++ b/src/ImageProcessor.Web/NET45/Config/ImageProcessorConfig.cs @@ -17,6 +17,7 @@ namespace ImageProcessor.Web.Config using System.Linq; using System.Reflection; using System.Text; + using System.Web.Compilation; using ImageProcessor.Processors; #endregion @@ -288,21 +289,20 @@ namespace ImageProcessor.Web.Config { if (this.GraphicsProcessors == null) { - try + if (GetImageProcessingSection().Plugins.AutoLoadPlugins) { - if (GetImageProcessingSection().Plugins.AutoLoadPlugins) + Type type = typeof(IGraphicsProcessor); + try { // Build a list of native IGraphicsProcessor instances. - Type type = typeof(IGraphicsProcessor); - IEnumerable types = - AppDomain.CurrentDomain.GetAssemblies() - .SelectMany(s => s.GetTypes()) - .Where(p => type.IsAssignableFrom(p) && p.IsClass && !p.IsAbstract) - .ToList(); - + List availableTypes = BuildManager.GetReferencedAssemblies() + .Cast() + .SelectMany(s => s.GetTypes()) + .Where(t => t != null && type.IsAssignableFrom(t) && t.IsClass && !t.IsAbstract) + .ToList(); + // Create them and add. - this.GraphicsProcessors = - types.Select(x => (Activator.CreateInstance(x) as IGraphicsProcessor)).ToList(); + this.GraphicsProcessors = availableTypes.Select(x => (Activator.CreateInstance(x) as IGraphicsProcessor)).ToList(); // Add the available settings. foreach (IGraphicsProcessor processor in this.GraphicsProcessors) @@ -310,53 +310,44 @@ namespace ImageProcessor.Web.Config processor.Settings = this.GetPluginSettings(processor.GetType().Name); } } - else + catch (ReflectionTypeLoadException ex) { - ImageProcessingSection.PluginElementCollection pluginConfigs = imageProcessingSection.Plugins; - this.GraphicsProcessors = new List(); - foreach (ImageProcessingSection.PluginElement pluginConfig in pluginConfigs) - { - Type type = Type.GetType(pluginConfig.Type); - - if (type == null) - { - throw new ArgumentException("Couldn't load IGraphicsProcessor: " + pluginConfig.Type); - } - - this.GraphicsProcessors.Add(Activator.CreateInstance(type) as IGraphicsProcessor); - } - - // Add the available settings. - foreach (IGraphicsProcessor processor in this.GraphicsProcessors) - { - processor.Settings = this.GetPluginSettings(processor.GetType().Name); - } + this.LoadGraphicsProcessorsFromConfiguration(); } } - catch (ReflectionTypeLoadException ex) + else { - StringBuilder stringBuilder = new StringBuilder(); - foreach (Exception exception in ex.LoaderExceptions) - { - stringBuilder.AppendLine(exception.Message); - if (exception is FileNotFoundException) - { - FileNotFoundException fileNotFoundException = exception as FileNotFoundException; - if (!string.IsNullOrEmpty(fileNotFoundException.FusionLog)) - { - stringBuilder.AppendLine("Fusion Log:"); - stringBuilder.AppendLine(fileNotFoundException.FusionLog); - } - } - - stringBuilder.AppendLine(); - } + this.LoadGraphicsProcessorsFromConfiguration(); + } + } + } - string errorMessage = stringBuilder.ToString(); + /// + /// Loads graphics processors from configuration. + /// + /// + /// Thrown when an cannot be loaded. + /// + private void LoadGraphicsProcessorsFromConfiguration() + { + ImageProcessingSection.PluginElementCollection pluginConfigs = imageProcessingSection.Plugins; + this.GraphicsProcessors = new List(); + foreach (ImageProcessingSection.PluginElement pluginConfig in pluginConfigs) + { + Type type = Type.GetType(pluginConfig.Type); - // Display or log the error based on your application. - throw new Exception(errorMessage); + if (type == null) + { + throw new TypeLoadException("Couldn't load IGraphicsProcessor: " + pluginConfig.Type); } + + this.GraphicsProcessors.Add(Activator.CreateInstance(type) as IGraphicsProcessor); + } + + // Add the available settings. + foreach (IGraphicsProcessor processor in this.GraphicsProcessors) + { + processor.Settings = this.GetPluginSettings(processor.GetType().Name); } } #endregion diff --git a/src/ImageProcessor.Web/NET45/Properties/AssemblyInfo.cs b/src/ImageProcessor.Web/NET45/Properties/AssemblyInfo.cs index bdd85bbbe..eb681c5e4 100644 --- a/src/ImageProcessor.Web/NET45/Properties/AssemblyInfo.cs +++ b/src/ImageProcessor.Web/NET45/Properties/AssemblyInfo.cs @@ -31,6 +31,6 @@ using System.Runtime.InteropServices; // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("3.1.0.0")] -[assembly: AssemblyFileVersion("3.1.0.0")] +[assembly: AssemblyVersion("3.1.1.0")] +[assembly: AssemblyFileVersion("3.1.1.0")] diff --git a/src/Nuget/ImageProcessor.Web.3.1.1.0.nupkg b/src/Nuget/ImageProcessor.Web.3.1.1.0.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..2a8f9ef3b2d9958f6910f60d20cee5e6dbad36f6 GIT binary patch literal 48413 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