mirror of https://github.com/abpframework/abp.git
committed by
GitHub
2 changed files with 50 additions and 3 deletions
@ -1,3 +1,52 @@ |
|||||
# Configuration |
# Configuration |
||||
|
|
||||
ASP.NET Core has an flexible and extensible key-value based configuration system. In fact, 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](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/) to learn the configuration infrastructure. ABP is 100% compatible with the configuration system. |
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](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/) 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](../architecture/modularity/basics.md) as the following example: |
||||
|
|
||||
|
````csharp |
||||
|
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](dependency-injection.md) the `IConfiguration` service into your services: |
||||
|
|
||||
|
````csharp |
||||
|
public class MyService : ITransientDependency |
||||
|
{ |
||||
|
private readonly IConfiguration _configuration; |
||||
|
|
||||
|
public MyService(IConfiguration configuration) |
||||
|
{ |
||||
|
_configuration = configuration; |
||||
|
} |
||||
|
|
||||
|
public string? GetConnectionString() |
||||
|
{ |
||||
|
return _configuration["ConnectionStrings:Default"]; |
||||
|
} |
||||
|
} |
||||
|
```` |
||||
|
|
||||
|
## See Also |
||||
|
|
||||
|
* [Microsoft's Configuration Documentation](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/) |
||||
|
* [The Options Pattern](options.md) |
||||
|
|
||||
|
|||||
Loading…
Reference in new issue