mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-11-08 10:35:01 +08:00
Added null checks and logging when assemblies can't be loaded
--HG-- branch : perf
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using Orchard.Environment.Extensions.Models;
|
||||
using Orchard.FileSystems.Dependencies;
|
||||
using Orchard.Logging;
|
||||
|
||||
namespace Orchard.Environment.Extensions.Loaders {
|
||||
public class AreaExtensionLoader : ExtensionLoaderBase {
|
||||
private readonly string _hostAssemblyName = "Orchard.Web";
|
||||
private readonly IAssemblyLoader _assemblyLoader;
|
||||
|
||||
public AreaExtensionLoader(IDependenciesFolder dependenciesFolder, IAssemblyLoader assemblyLoader)
|
||||
@@ -35,7 +35,11 @@ namespace Orchard.Environment.Extensions.Loaders {
|
||||
protected override ExtensionEntry LoadWorker(ExtensionDescriptor descriptor) {
|
||||
//Logger.Information("Loading extension \"{0}\"", descriptor.Name);
|
||||
|
||||
var assembly = _assemblyLoader.Load("Orchard.Web");
|
||||
var assembly = _assemblyLoader.Load(_hostAssemblyName);
|
||||
if (assembly == null) {
|
||||
Logger.Warning("Support for 'Areas' modules disabled because assembly '{0}' could not be loaded", _hostAssemblyName);
|
||||
return null;
|
||||
}
|
||||
|
||||
return new ExtensionEntry {
|
||||
Descriptor = descriptor,
|
||||
@@ -44,8 +48,8 @@ namespace Orchard.Environment.Extensions.Loaders {
|
||||
};
|
||||
}
|
||||
|
||||
private static bool IsTypeFromModule(Type type, ExtensionDescriptor descriptor) {
|
||||
return (type.Namespace + ".").StartsWith("Orchard.Web.Areas." + descriptor.Name + ".");
|
||||
private bool IsTypeFromModule(Type type, ExtensionDescriptor descriptor) {
|
||||
return (type.Namespace + ".").StartsWith(_hostAssemblyName + ".Areas." + descriptor.Name + ".");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,7 @@ namespace Orchard.Environment.Extensions.Loaders {
|
||||
/// Load an extension by looking into specific namespaces of the "Orchard.Core" assembly
|
||||
/// </summary>
|
||||
public class CoreExtensionLoader : ExtensionLoaderBase {
|
||||
private readonly string _coreAssemblyName = "Orchard.Core";
|
||||
private readonly IAssemblyLoader _assemblyLoader;
|
||||
|
||||
public CoreExtensionLoader(IDependenciesFolder dependenciesFolder, IAssemblyLoader assemblyLoader)
|
||||
@@ -38,7 +39,11 @@ namespace Orchard.Environment.Extensions.Loaders {
|
||||
protected override ExtensionEntry LoadWorker(ExtensionDescriptor descriptor) {
|
||||
//Logger.Information("Loading extension \"{0}\"", descriptor.Name);
|
||||
|
||||
var assembly = _assemblyLoader.Load("Orchard.Core");
|
||||
var assembly = _assemblyLoader.Load(_coreAssemblyName);
|
||||
if (assembly == null) {
|
||||
Logger.Error("Core modules cannot be activated because assembly '{0}' could not be loaded", _coreAssemblyName);
|
||||
return null;
|
||||
}
|
||||
|
||||
return new ExtensionEntry {
|
||||
Descriptor = descriptor,
|
||||
@@ -47,8 +52,8 @@ namespace Orchard.Environment.Extensions.Loaders {
|
||||
};
|
||||
}
|
||||
|
||||
private static bool IsTypeFromModule(Type type, ExtensionDescriptor descriptor) {
|
||||
return (type.Namespace + ".").StartsWith("Orchard.Core." + descriptor.Name + ".");
|
||||
private bool IsTypeFromModule(Type type, ExtensionDescriptor descriptor) {
|
||||
return (type.Namespace + ".").StartsWith(_coreAssemblyName + "." + descriptor.Name + ".");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user