Configuration
ASP.NET Core has an flexible and extensible key-value based configuration system. The configuration system is a part of Microsoft.Extensions libraries and it is independent from ASP.NET Core. That means it can be used in any type of application.
See Microsoft's documentation to learn the configuration infrastructure. ABP is 100% compatible with the configuration system.
Getting the Configuration
You may need to get the IConfiguration service in various places in your codebase. The following section shows two common ways.
In Module Classes
You typically need to get configuration while initializing your application. You can get the IConfiguration service using the ServiceConfigurationContext.Configuration property inside your module class as the following example:
public class MyAppModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
var connectionString = context.Configuration["ConnectionStrings:Default"];
}
}
context.Configuration is a shortcut property for the context.Services.GetConfiguration() method. In general, prefer using context.Configuration for simplicity and readability when working within module classes. Use context.Services.GetConfiguration() in other contexts where you have an IServiceCollection object but do not have access to the context.Configuration property. (IServiceCollection.GetConfiguration is an extension method that can be used whenever you have an IServiceCollection object).
In Your Services
You can directly inject the IConfiguration service into your services:
public class MyService : ITransientDependency
{
private readonly IConfiguration _configuration;
public MyService(IConfiguration configuration)
{
_configuration = configuration;
}
public string? GetConnectionString()
{
return _configuration["ConnectionStrings:Default"];
}
}