Revise app initialize and shotdown components.

pull/81/head
Halil İbrahim Kalkan 9 years ago
parent f393a79699
commit 7658c75319

@ -65,7 +65,7 @@ namespace Volo.Abp
Check.NotNull(serviceProvider, nameof(serviceProvider));
ServiceProvider = serviceProvider;
ServiceProvider.GetRequiredService<IModuleManager>().InitializeModules();
ServiceProvider.GetRequiredService<IModuleManager>().InitializeModules(new ApplicationInitializationContext(serviceProvider));
}
private AbpModuleDescriptor[] LoadModules(IServiceCollection services, AbpApplicationCreationOptions options)
@ -81,7 +81,7 @@ namespace Volo.Abp
public void Shutdown()
{
ServiceProvider.GetRequiredService<IModuleManager>().ShutdownModules();
ServiceProvider.GetRequiredService<IModuleManager>().ShutdownModules(new ApplicationShutdownContext());
}
}
}

@ -1,6 +1,7 @@
using JetBrains.Annotations;
using Volo.Abp.Modularity;
namespace Volo.Abp.Modularity
namespace Volo.Abp
{
public interface IOnApplicationInitialization
{

@ -1,6 +1,7 @@
using JetBrains.Annotations;
using Volo.Abp.Modularity;
namespace Volo.Abp.Modularity
namespace Volo.Abp
{
public interface IOnApplicationShutdown
{

@ -1,29 +1,14 @@
using System;
namespace Volo.Abp.Modularity
namespace Volo.Abp.Modularity
{
public class DefaultModuleLifecycleContributer : ModuleLifecycleContributerBase
{
private readonly IServiceProvider _serviceProvider;
public DefaultModuleLifecycleContributer(IServiceProvider serviceProvider)
public override void Initialize(ApplicationInitializationContext context, IAbpModule module)
{
_serviceProvider = serviceProvider;
}
public override void Initialize(IAbpModule module)
{
var context = new ApplicationInitializationContext(
_serviceProvider
);
(module as IOnApplicationInitialization)?.OnApplicationInitialization(context);
}
public override void Shutdown(IAbpModule module)
public override void Shutdown(ApplicationShutdownContext context, IAbpModule module)
{
var context = new ApplicationShutdownContext();
(module as IOnApplicationShutdown)?.OnApplicationShutdown(context);
}
}

@ -5,8 +5,8 @@ namespace Volo.Abp.Modularity
{
public interface IModuleLifecycleContributer : ISingletonDependency
{
void Initialize([NotNull] IAbpModule module);
void Initialize([NotNull] ApplicationInitializationContext context, [NotNull] IAbpModule module);
void Shutdown([NotNull] IAbpModule module);
void Shutdown([NotNull] ApplicationShutdownContext context, [NotNull] IAbpModule module);
}
}

@ -8,8 +8,8 @@ namespace Volo.Abp.Modularity
[NotNull]
IReadOnlyList<AbpModuleDescriptor> Modules { get; }
void InitializeModules();
void InitializeModules([NotNull] ApplicationInitializationContext context);
void ShutdownModules();
void ShutdownModules([NotNull] ApplicationShutdownContext context);
}
}

@ -2,11 +2,11 @@
{
public abstract class ModuleLifecycleContributerBase : IModuleLifecycleContributer
{
public virtual void Initialize(IAbpModule module)
public virtual void Initialize(ApplicationInitializationContext context, IAbpModule module)
{
}
public virtual void Shutdown(IAbpModule module)
public virtual void Shutdown(ApplicationShutdownContext context, IAbpModule module)
{
}
}

@ -20,24 +20,24 @@ namespace Volo.Abp.Modularity
_modules = application.Modules.ToList();
}
public void InitializeModules()
public void InitializeModules(ApplicationInitializationContext context)
{
foreach (var contributer in _lifecycleContributers)
{
foreach (var module in Modules)
{
contributer.Initialize(module.Instance);
contributer.Initialize(context, module.Instance);
}
}
}
public void ShutdownModules()
public void ShutdownModules(ApplicationShutdownContext context)
{
foreach (var contributer in _lifecycleContributers)
{
foreach (var module in Modules)
{
contributer.Shutdown(module.Instance);
contributer.Shutdown(context, module.Instance);
}
}
}

Loading…
Cancel
Save