Как правильно использовать настраиваемый файл конфигурации в консольном приложении C# - PullRequest
1 голос
/ 03 августа 2020

Я пишу простое консольное приложение, которое, в конце концов, откроет страницу веб-браузера. Я хочу, чтобы имя браузера сохранялось во внешнем файле конфигурации, чтобы пользователь мог вручную изменить его на свое любимое. (Хотя я открыт для другого подхода, он был признан лучшим для использования в приложении).

Однако я не могу использовать файл App.config, так как он есть находится в папке приложения, к которой не могут получить доступ пользователи без прав администратора. (Перемещение папки приложения невозможно, так как оно будет установлено в Program Files).

Поэтому я хотел бы, чтобы приложение использовало другой файл .config, расположенный в папке пользователя. Документы (или любая другая доступная папка), хотя я не нашел никакого "канонического" способа указать моему приложению искать этот файл вместо стандартного App.config и по-прежнему иметь возможность использовать ConfigurationManager, как это :

browser = ConfigurationManager.AppSettings.Get("browser");

Есть ли способ указать моему приложению загрузить другой .config файл, или мне следует открыть его как обычный текстовый файл и обработать синтаксический анализ?

Изменить: Я использую. NET Core 3.1 и VisualStudio 2019

1 Ответ

0 голосов
/ 03 августа 2020

Например, это ваш appconfig:

"Parameter": {
    "DbConnectionRead": ""
}

, и вы можете использовать ConfigurationBuilder в C# классе, как в примере ниже:

string ReaderConnectionString;
var builder = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

ReaderConnectionString = builder.Build()
                                .GetSection("Parameter")
                                .GetSection("DbConnectionRead")
                                .Value;

Надеюсь, это полезно тебе.

...