Open Source Web Application Framework for ASP.NET Core
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2.4 KiB

//[doc-seo]
{
    "Description": "Explore how to leverage ASP.NET Core's flexible configuration system with ABP Framework for effective application management and customization."
}

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"];
    }
}

See Also