Browse Source

Try to set environment after `ConfigureServices` method executes.

pull/14842/head
maliming 4 years ago
parent
commit
930c1de8b0
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 22
      framework/src/Volo.Abp.Core/Volo/Abp/AbpApplicationBase.cs
  2. 34
      framework/test/Volo.Abp.AspNetCore.Tests/Volo/Abp/AspNetCore/AbpHostEnvironment_Tests.cs

22
framework/src/Volo.Abp.Core/Volo/Abp/AbpApplicationBase.cs

@ -66,15 +66,6 @@ public abstract class AbpApplicationBase : IAbpApplication
{
ConfigureServices();
}
if (options.Environment.IsNullOrWhiteSpace())
{
var abpHostEnvironment = services.GetSingletonInstance<IAbpHostEnvironment>();
if (abpHostEnvironment.EnvironmentName.IsNullOrWhiteSpace())
{
abpHostEnvironment.EnvironmentName = Environments.Production;
}
}
}
public virtual async Task ShutdownAsync()
@ -238,6 +229,8 @@ public abstract class AbpApplicationBase : IAbpApplication
}
_configuredServices = true;
TryToSetEnvironment(Services);
}
private void CheckMultipleConfigureServices()
@ -327,6 +320,8 @@ public abstract class AbpApplicationBase : IAbpApplication
}
_configuredServices = true;
TryToSetEnvironment(Services);
}
private static string GetApplicationName(AbpApplicationCreationOptions options)
@ -354,4 +349,13 @@ public abstract class AbpApplicationBase : IAbpApplication
return null;
}
private static void TryToSetEnvironment(IServiceCollection services)
{
var abpHostEnvironment = services.GetSingletonInstance<IAbpHostEnvironment>();
if (abpHostEnvironment.EnvironmentName.IsNullOrWhiteSpace())
{
abpHostEnvironment.EnvironmentName = Environments.Production;
}
}
}

34
framework/test/Volo.Abp.AspNetCore.Tests/Volo/Abp/AspNetCore/AbpHostEnvironment_Tests.cs

@ -1,5 +1,8 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Configuration.Memory;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Shouldly;
using Xunit;
@ -29,3 +32,34 @@ public class AbpHostEnvironment_Tests : AbpAspNetCoreTestBase<Startup>
abpHostEnvironment.EnvironmentName.ShouldBe(Environments.Staging);
}
}
public class AbpHostEnvironment_Async_Initialize_Tests
{
[Fact]
public async Task Should_Set_Environment_From_AspNetCore()
{
var builder = WebApplication.CreateBuilder(new WebApplicationOptions
{
EnvironmentName = Environments.Staging
});
builder.Host.UseAutofac();
await builder.AddApplicationAsync<AbpAspNetCoreTestModule>();
var app = builder.Build();
await app.InitializeApplicationAsync();
var abpHostEnvironment = app.Services.GetRequiredService<IAbpHostEnvironment>();
abpHostEnvironment.EnvironmentName.ShouldBe(Environments.Staging);
builder = WebApplication.CreateBuilder(new WebApplicationOptions
{
EnvironmentName = Environments.Staging
});
builder.Host.UseAutofac();
var abpApp = await AbpApplicationFactory.CreateAsync<AbpAspNetCoreTestModule>(builder.Services);
app = builder.Build();
await app.InitializeApplicationAsync();
abpHostEnvironment = abpApp.Services.GetRequiredService<IAbpHostEnvironment>();
abpHostEnvironment.EnvironmentName.ShouldBe(Environments.Staging);
}
}

Loading…
Cancel
Save