mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 11:44:58 +08:00
Merge
--HG-- branch : dev
This commit is contained in:
@@ -1,55 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Linq;
|
|
||||||
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)
|
|
||||||
: base(dependenciesFolder) {
|
|
||||||
_assemblyLoader = assemblyLoader;
|
|
||||||
|
|
||||||
Logger = NullLogger.Instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ILogger Logger { get; set; }
|
|
||||||
|
|
||||||
public override int Order { get { return 50; } }
|
|
||||||
|
|
||||||
public override ExtensionProbeEntry Probe(ExtensionDescriptor descriptor) {
|
|
||||||
if (descriptor.Location == "~/Areas") {
|
|
||||||
return new ExtensionProbeEntry {
|
|
||||||
Descriptor = descriptor,
|
|
||||||
Loader = this,
|
|
||||||
LastWriteTimeUtc = DateTime.MinValue,
|
|
||||||
VirtualPath = "~/Areas/" + descriptor.Id,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override ExtensionEntry LoadWorker(ExtensionDescriptor descriptor) {
|
|
||||||
//Logger.Information("Loading extension \"{0}\"", descriptor.Name);
|
|
||||||
|
|
||||||
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,
|
|
||||||
Assembly = assembly,
|
|
||||||
ExportedTypes = assembly.GetExportedTypes().Where(x => IsTypeFromModule(x, descriptor))
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool IsTypeFromModule(Type type, ExtensionDescriptor descriptor) {
|
|
||||||
return (type.Namespace + ".").StartsWith(_hostAssemblyName + ".Areas." + descriptor.Id + ".");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -78,7 +78,6 @@ namespace Orchard.Environment {
|
|||||||
builder.RegisterType<ThemeFolders>().As<IExtensionFolders>().SingleInstance()
|
builder.RegisterType<ThemeFolders>().As<IExtensionFolders>().SingleInstance()
|
||||||
.WithParameter(new NamedParameter("paths", new[] { "~/Core", "~/Themes" }));
|
.WithParameter(new NamedParameter("paths", new[] { "~/Core", "~/Themes" }));
|
||||||
|
|
||||||
builder.RegisterType<AreaExtensionLoader>().As<IExtensionLoader>().SingleInstance();
|
|
||||||
builder.RegisterType<CoreExtensionLoader>().As<IExtensionLoader>().SingleInstance();
|
builder.RegisterType<CoreExtensionLoader>().As<IExtensionLoader>().SingleInstance();
|
||||||
builder.RegisterType<ReferencedExtensionLoader>().As<IExtensionLoader>().SingleInstance();
|
builder.RegisterType<ReferencedExtensionLoader>().As<IExtensionLoader>().SingleInstance();
|
||||||
builder.RegisterType<PrecompiledExtensionLoader>().As<IExtensionLoader>().SingleInstance();
|
builder.RegisterType<PrecompiledExtensionLoader>().As<IExtensionLoader>().SingleInstance();
|
||||||
|
@@ -642,7 +642,6 @@
|
|||||||
<Compile Include="Events\IEventBus.cs" />
|
<Compile Include="Events\IEventBus.cs" />
|
||||||
<Compile Include="Environment\Extensions\Folders\AreaFolders.cs" />
|
<Compile Include="Environment\Extensions\Folders\AreaFolders.cs" />
|
||||||
<Compile Include="Environment\Extensions\Folders\ExtensionFolders.cs" />
|
<Compile Include="Environment\Extensions\Folders\ExtensionFolders.cs" />
|
||||||
<Compile Include="Environment\Extensions\Loaders\AreaExtensionLoader.cs" />
|
|
||||||
<Compile Include="Environment\Extensions\Models\Feature.cs" />
|
<Compile Include="Environment\Extensions\Models\Feature.cs" />
|
||||||
<Compile Include="Environment\Extensions\Models\FeatureDescriptor.cs" />
|
<Compile Include="Environment\Extensions\Models\FeatureDescriptor.cs" />
|
||||||
<Compile Include="Environment\Extensions\OrchardFeatureAttribute.cs" />
|
<Compile Include="Environment\Extensions\OrchardFeatureAttribute.cs" />
|
||||||
|
Reference in New Issue
Block a user