IConfiguration | CSharp
- IConfiguration | CSharp
- Ordem de adição dos providers. Cada provider sobrescreve o anterior
| Ordem de adição | Provider |
|---|---|
| 1 | appsettings.json |
| 2 | appsettings.{Environment}.json |
| 3 | User Secrets (Development) |
| 4 | Variáveis de ambiente |
| 5 | Argumentos de linha de comando |
IConfigurationé populado por várias fontes de dados

Aqui está uma documentação direta ao ponto sobre o uso de configuration["AppSettings:ConnectionString"] no .NET.
Acessando Configurações com IConfiguration no .NET
Documentação objetiva
🎯 O que é configuration["AppSettings:ConnectionString"]?
É a forma de ler um valor de configuração usando a interface IConfiguration, acessando uma chave dentro de uma seção do arquivo appsettings.json (ou outro provider).
A sintaxe usa : para navegar por seções.
📁 Estrutura esperada no appsettings.json
{
"AppSettings": {
"ConnectionString": "Server=localhost;Database=MeuDB;User Id=sa;Password=123;"
}
}
🔍 Como acessar o valor
var connectionString = configuration["AppSettings:ConnectionString"];
O .NET interpreta isso como:
- Seção: AppSettings
- Chave: ConnectionString
Retorno: string com o conteúdo da configuração.
📝 Alternativas equivalentes
Via GetSection
var conn = configuration.GetSection("AppSettings").GetValue<string>("ConnectionString");
Via objeto tipado (Options Pattern)
public class AppSettings
{
public string ConnectionString { get; set; }
}
// Program.cs ou Startup
services.Configure<AppSettings>(configuration.GetSection("AppSettings"));
Leitura:
var settings = serviceProvider.GetRequiredService<IOptions<AppSettings>>().Value;
var conn = settings.ConnectionString;
📌 Principais Configuration Providers do .NET
JSON files provider
Lê arquivos .json, como:
appsettings.jsonappsettings.Development.json
builder.Configuration.AddJsonFile("appsettings.json");
Environment Variables provider
Lê variáveis de ambiente do sistema.
builder.Configuration.AddEnvironmentVariables();
Command-line arguments provider
Lê parâmetros passados na execução do app.
dotnet run --AppSettings:Port=8080
builder.Configuration.AddCommandLine(args);
User Secrets provider (somente desenvolvimento)
Armazena segredos localmente, fora do repositório.
builder.Configuration.AddUserSecrets<Startup>();
INI files provider
Lê arquivos .ini.
builder.Configuration.AddIniFile("config.ini");
XML files provider
Lê arquivos .xml.
builder.Configuration.AddXmlFile("config.xml");
In-memory provider
Configura dados diretamente na memória.
builder.Configuration.AddInMemoryCollection(dict);
Azure Key Vault provider
Lê segredos armazenados no Azure Key Vault.
builder.Configuration.AddAzureKeyVault(...);
Azure App Configuration provider
Lê configurações centralizadas no Azure App Config.
builder.Configuration.AddAzureAppConfiguration(...);
File provider customizado
Lê dados de qualquer fonte personalizada (arquivo, API, DB), implementando:
class MyProvider : ConfigurationProvider {}
class MySource : IConfigurationSource {}
Todos os providers são combinados
O .NET mescla os providers na ordem em que são adicionados. O último provider sobrescreve valores dos anteriores.