Skip to content

Commit

Permalink
Resolved #983: Added Configuration.ReplaceService method to override …
Browse files Browse the repository at this point in the history
…built-in services.
  • Loading branch information
hikalkan committed May 5, 2016
1 parent 4958c9d commit 223e4f8
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 3 deletions.
6 changes: 5 additions & 1 deletion src/Abp/AbpKernelModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
using Abp.Authorization.Interceptors;
using Abp.BackgroundJobs;
using Abp.Configuration;
using Abp.Configuration.Startup;
using Abp.Dependency;
using Abp.Domain.Uow;
using Abp.Events.Bus;
Expand Down Expand Up @@ -74,7 +75,10 @@ public override void PreInitialize()

public override void Initialize()
{
base.Initialize();
foreach (var replaceAction in ((AbpStartupConfiguration)Configuration).ServiceReplaceActions.Values)
{
replaceAction();
}

IocManager.IocContainer.Install(new EventBusInstaller(IocManager));

Expand Down
15 changes: 14 additions & 1 deletion src/Abp/Configuration/Startup/AbpStartupConfiguration.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
using Abp.Application.Features;
using System;
using System.Collections.Generic;
using Abp.Application.Features;
using Abp.Auditing;
using Abp.BackgroundJobs;
using Abp.Dependency;
Expand All @@ -14,6 +16,9 @@ namespace Abp.Configuration.Startup
/// </summary>
internal class AbpStartupConfiguration : DictionaryBasedConfig, IAbpStartupConfiguration
{
/// <summary>
/// Reference to the IocManager.
/// </summary>
public IIocManager IocManager { get; private set; }

/// <summary>
Expand Down Expand Up @@ -85,6 +90,8 @@ internal class AbpStartupConfiguration : DictionaryBasedConfig, IAbpStartupConfi
/// </summary>
public IMultiTenancyConfig MultiTenancy { get; private set; }

public Dictionary<Type, Action> ServiceReplaceActions { get; private set; }

/// <summary>
/// Private constructor for singleton pattern.
/// </summary>
Expand All @@ -108,6 +115,12 @@ public void Initialize()
Caching = IocManager.Resolve<ICachingConfiguration>();
BackgroundJobs = IocManager.Resolve<IBackgroundJobConfiguration>();
Notifications = IocManager.Resolve<INotificationConfiguration>();
ServiceReplaceActions = new Dictionary<Type, Action>();
}

public void ReplaceService(Type type, Action replaceAction)
{
ServiceReplaceActions[type] = replaceAction;
}
}
}
5 changes: 4 additions & 1 deletion src/Abp/Configuration/Startup/IAbpStartupConfiguration.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Abp.Application.Features;
using System;
using Abp.Application.Features;
using Abp.Auditing;
using Abp.BackgroundJobs;
using Abp.Dependency;
Expand Down Expand Up @@ -90,5 +91,7 @@ public interface IAbpStartupConfiguration : IDictionaryBasedConfig
/// Used to configure notification system.
/// </summary>
INotificationConfiguration Notifications { get; }

void ReplaceService(Type type, Action replaceAction);
}
}

0 comments on commit 223e4f8

Please sign in to comment.