using System; using Volo.Abp.DependencyInjection; using Volo.Abp.Options; namespace Microsoft.Extensions.DependencyInjection { public static class ServiceCollectionPreConfigureExtensions { public static IServiceCollection PreConfigure(this IServiceCollection services, Action optionsAction) { services.GetPreConfigureActions().Add(optionsAction); return services; } public static TOptions ExecutePreConfiguredActions(this IServiceCollection services, TOptions options) { services.GetPreConfigureActions().Configure(options); return options; } public static PreConfigureActionList GetPreConfigureActions(this IServiceCollection services) { var actionList = services.GetSingletonInstanceOrNull>>()?.Value; if (actionList == null) { actionList = new PreConfigureActionList(); services.AddObjectAccessor(actionList); } return actionList; } } }