一键导入
configuration
Manage application configuration with environment variables, Azure Key Vault, feature flags, and environment-specific settings.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Manage application configuration with environment variables, Azure Key Vault, feature flags, and environment-specific settings.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Build production-ready AI agents with Microsoft Foundry and Agent Framework. Covers agent architecture, model selection, orchestration, tracing, and evaluation.
Design robust REST APIs with proper versioning, pagination, error handling, rate limiting, and OpenAPI documentation.
Structure projects for maintainability and scalability with clean architecture, separation of concerns, and consistent project layouts.
Systematic code review and audit practices including automated checks, security audits, compliance verification, and review checklists.
Fundamental coding principles for production development including SOLID, DRY, KISS, and common design patterns with C# examples.
Efficient database operations with PostgreSQL, Entity Framework Core, migrations, indexing strategies, transactions, and connection pooling.
| name | configuration |
| description | Manage application configuration with environment variables, Azure Key Vault, feature flags, and environment-specific settings. |
Purpose: Manage application configuration across environments securely and efficiently.
using System;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
public class AppConfig
{
private readonly IConfiguration _configuration;
public AppConfig(IConfiguration configuration)
{
_configuration = configuration;
}
// Required
public string DatabaseUrl => _configuration["DatabaseUrl"]
?? throw new InvalidOperationException("DatabaseUrl is required");
public string SecretKey => _configuration["SecretKey"]
?? throw new InvalidOperationException("SecretKey is required");
// Optional with defaults
public bool Debug => bool.Parse(_configuration["Debug"] ?? "false");
public int Port => int.Parse(_configuration["Port"] ?? "8000");
public string LogLevel => _configuration["LogLevel"] ?? "Information";
// Environment-specific
public string Environment => _configuration["Environment"] ?? "Development";
public bool IsProduction => Environment.Equals("Production", StringComparison.OrdinalIgnoreCase);
}
{
"DatabaseUrl": "",
"SecretKey": "",
"Debug": false,
"Port": 8000,
"LogLevel": "Information",
"Environment": "Development"
}
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
var builder = Host.CreateApplicationBuilder(args);
builder.Configuration
.AddJsonFile("appsettings.json", optional: false)
.AddJsonFile($"appsettings.{builder.Environment.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables()
.AddUserSecrets<Program>(optional: true);
builder.Services.AddSingleton<AppConfig>();
public interface IFeatureFlags
{
bool IsEnabled(string flagName);
}
public class FeatureFlags : IFeatureFlags
{
private readonly IConfiguration _configuration;
private readonly Dictionary<string, bool> _flags;
public FeatureFlags(IConfiguration configuration)
{
_configuration = configuration;
_flags = new Dictionary<string, bool>
{
["NewUi"] = bool.Parse(_configuration["Features:NewUi"] ?? "false"),
["AiFeatures"] = bool.Parse(_configuration["Features:AiFeatures"] ?? "false")
};
}
public bool IsEnabled(string flagName)
{
return _flags.TryGetValue(flagName, out var enabled) && enabled;
}
}
// Usage
public class MyController
{
private readonly IFeatureFlags _features;
public MyController(IFeatureFlags features)
{
_features = features;
}
public IActionResult Index()
{
if (_features.IsEnabled("NewUi"))
{
return RenderNewUi();
}
else
{
return RenderLegacyUi();
}
}
}
// ❌ Never hardcode secrets
public const string ApiKey = "sk_live_abc123";
// ✅ Use IConfiguration with environment variables
public class ApiService
{
private readonly string _apiKey;
public ApiService(IConfiguration configuration)
{
_apiKey = configuration["ApiKey"]
?? throw new InvalidOperationException("ApiKey is required");
}
}
// ✅ Use Azure Key Vault
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
using Microsoft.Extensions.Configuration;
public static class KeyVaultExtensions
{
public static IConfigurationBuilder AddAzureKeyVault(
this IConfigurationBuilder builder,
string keyVaultUrl)
{
var secretClient = new SecretClient(
new Uri(keyVaultUrl),
new DefaultAzureCredential());
builder.AddAzureKeyVault(secretClient, new KeyVaultSecretManager());
return builder;
}
}
// Setup in Program.cs
builder.Configuration.AddAzureKeyVault(
builder.Configuration["KeyVaultUrl"] ?? throw new InvalidOperationException("KeyVaultUrl required"));
# Initialize user secrets
dotnet user-secrets init
# Set secrets
dotnet user-secrets set "ApiKey" "sk_dev_abc123"
dotnet user-secrets set "DatabaseUrl" "Server=localhost;Database=mydb"
# List secrets
dotnet user-secrets list
Related Skills: