35 lines
1.1 KiB
C#
35 lines
1.1 KiB
C#
using Microsoft.Extensions.Configuration;
|
|
using ZA.CoreService.ESBCertificateManager.Models;
|
|
|
|
namespace ZA.CoreService.ESBCertificateManager.Configuration;
|
|
|
|
public static class AppSettingsLoader
|
|
{
|
|
public static AppSettings Load()
|
|
{
|
|
// Zuerst Output-Verzeichnis, dann aktuelles Arbeitsverzeichnis (z.B. VS Debug).
|
|
string basePath = Directory.Exists(AppContext.BaseDirectory)
|
|
? AppContext.BaseDirectory
|
|
: Directory.GetCurrentDirectory();
|
|
|
|
string settingsPath = Path.Combine(basePath, "appsettings.json");
|
|
if (!File.Exists(settingsPath))
|
|
{
|
|
string cwdPath = Path.Combine(Directory.GetCurrentDirectory(), "appsettings.json");
|
|
if (File.Exists(cwdPath))
|
|
{
|
|
basePath = Directory.GetCurrentDirectory();
|
|
}
|
|
}
|
|
|
|
IConfigurationRoot configuration = new ConfigurationBuilder()
|
|
.SetBasePath(basePath)
|
|
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false)
|
|
.Build();
|
|
|
|
AppSettings settings = new();
|
|
configuration.Bind(settings);
|
|
return settings;
|
|
}
|
|
}
|