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(); } } }