पाठ 14 / 26

Configuration और Environments

appsettings.json, environment variables और user secrets से settings पढ़ें।

Settings की परतें

Configuration परतों में है: appsettings.json, फिर appsettings.{Environment}.json, फिर user secrets (Development में), फिर environment variables, फिर command-line arguments। बाद वाले स्रोत पहले वालों को override करते हैं।

Values पढ़ना और सेट करना

Nested keys कोड में : और environment variable के नाम में __ से लिखी जाती हैं। dotnet user-secrets development के secrets को repo से बाहर रखता है।

// appsettings.json: { "Shop": { "PageSize": 20 } }
var pageSize = builder.Configuration.GetValue<int>("Shop:PageSize");

// Shell:
//   dotnet user-secrets init
//   dotnet user-secrets set "ConnectionStrings:Default" "Server=...;Password=..."
//   export Shop__PageSize=50   # overrides appsettings.json

Secrets कभी commit न करें

Passwords, API keys और signing keys appsettings.json में नहीं रखे जाते। Local में user secrets और production में environment variables या secret manager उपयोग करें।

त्वरित जाँच: एक ही key appsettings.json और environment variable दोनों में हो तो कौन जीतता है?

  • appsettings.json
  • ऐप जिसे पहले पढ़े
  • कोई नहीं; error आता है
  • Environment variable
Answer

Environment variable — Environment variables JSON files के बाद जुड़ते हैं, इसलिए वे उन्हें override करते हैं।