diff --git a/src/Orchard.Web/Orchard.Web.csproj b/src/Orchard.Web/Orchard.Web.csproj
index bb5f3d4fa..5128a4a58 100644
--- a/src/Orchard.Web/Orchard.Web.csproj
+++ b/src/Orchard.Web/Orchard.Web.csproj
@@ -164,7 +164,7 @@
-
+
@@ -342,6 +342,7 @@
+
diff --git a/src/Orchard/Environment/ShellBuilders/DefaultShellContainerFactory.cs b/src/Orchard/Environment/ShellBuilders/DefaultShellContainerFactory.cs
index 2af7bd087..88991f8ab 100644
--- a/src/Orchard/Environment/ShellBuilders/DefaultShellContainerFactory.cs
+++ b/src/Orchard/Environment/ShellBuilders/DefaultShellContainerFactory.cs
@@ -35,17 +35,18 @@ namespace Orchard.Environment.ShellBuilders {
// add components by the IDependency interfaces they expose
foreach (var serviceType in _compositionStrategy.GetDependencyTypes()) {
+ var registrar = addingModulesAndServices.RegisterType(serviceType)
+ .EnableDynamicProxy(dynamicProxyContext)
+ .InstancePerLifetimeScope();
+
foreach (var interfaceType in serviceType.GetInterfaces()) {
if (typeof(IDependency).IsAssignableFrom(interfaceType)) {
- var registrar = addingModulesAndServices.RegisterType(serviceType).As(interfaceType).EnableDynamicProxy(dynamicProxyContext);
+ registrar = registrar.As(interfaceType);
if (typeof(ISingletonDependency).IsAssignableFrom(interfaceType)) {
- registrar.SingleInstance();
+ registrar = registrar.SingleInstance();
}
else if (typeof(ITransientDependency).IsAssignableFrom(interfaceType)) {
- registrar.InstancePerDependency();
- }
- else {
- registrar.InstancePerLifetimeScope();
+ registrar = registrar.InstancePerDependency();
}
}
}
diff --git a/src/Orchard/Environment/ShellBuilders/SafeModeShellContainerFactory.cs b/src/Orchard/Environment/ShellBuilders/SafeModeShellContainerFactory.cs
index 7eef7c180..cc79d536b 100644
--- a/src/Orchard/Environment/ShellBuilders/SafeModeShellContainerFactory.cs
+++ b/src/Orchard/Environment/ShellBuilders/SafeModeShellContainerFactory.cs
@@ -70,17 +70,15 @@ namespace Orchard.Environment.ShellBuilders {
.GetExportedTypes()
.Where(type => type.IsClass && !type.IsAbstract && typeof(IDependency).IsAssignableFrom(type));
foreach (var serviceType in dependencies) {
+ var registrar = builder.RegisterType(serviceType).EnableDynamicProxy(dynamicProxyContext).InstancePerLifetimeScope();
foreach (var interfaceType in serviceType.GetInterfaces()) {
if (typeof(IDependency).IsAssignableFrom(interfaceType)) {
- var registrar = builder.RegisterType(serviceType).As(interfaceType).EnableDynamicProxy(dynamicProxyContext);
+ registrar = registrar.As(interfaceType);
if (typeof(ISingletonDependency).IsAssignableFrom(interfaceType)) {
- registrar.SingleInstance();
+ registrar = registrar.SingleInstance();
}
else if (typeof(ITransientDependency).IsAssignableFrom(interfaceType)) {
- registrar.InstancePerDependency();
- }
- else {
- registrar.InstancePerLifetimeScope();
+ registrar = registrar.InstancePerDependency();
}
}
}