Чтение dll.config(не app.config!) Из модуля плагина
Я пишу С#.NET 2.0.dll, который подключается к Более крупное приложение. Проект visual studio для моего модуля имеет файл app.config, который копируется в MyProj.dll.config рядом с MyProj.dll.
План состоит в том, что MyProj.dll.config будет отредактирован после развертывания .dll. Я пытаюсь прочитать мои настройки из этого измененного локального файла. Я попытался вытащить объект LocalFilesSettingsObject и сменить его имя приложения на мой .dll следующим образом:
Properties.Settings config = Properties.Settings.Default;
SettingsContext context = config.Context;
SettingsPropertyCollection properties = config.Properties;
SettingsProviderCollection providers = config.Providers;
SettingsProvider configFile = Properties.Settings.Default.Providers["LocalFileSettingsProvider"];
configFile.ApplicationName = Assembly.GetExecutingAssembly().GetName().Name;
config.Initialize(context, properties, providers);
config.Reload();
Это не работает. Я изо всех сил пытаюсь обернуть голову вокруг всего беспорядка .NET Settings. Я бы хотел, чтобы рецепт был закончен. Мне также нужна ссылка на ясное объяснение (с примерами) того, как настройки должны работать в .NET 2.0
Ответы
Ответ 1
Вам нужно будет загрузить x.dll.config
(с помощью API конфигурации). Вся автоматическая обработка файлов (включая .Settings
) относится ко всем параметрам machine.config/y.exe.config/user.
Чтобы открыть именованный файл конфигурации:
Ответ 2
1- открыть файл app.config в visual studio
2- в теге "configuration" добавьте свои настройки в тег "appSettings", как показано ниже:
<configuration>
<appSettings>
<add key="UserName" value="aaa"/>
<add key="Password" value="111"/>
</appSettings>
</configuration>
3- в вашем коде С#
var appConfig = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location);
string userName = appConfig.AppSettings.Settings["UserName"].Value;
string password = appConfig.AppSettings.Settings["Password"].Value;
и не забывайте добавлять эти 2 приложения для "ConfigurationManager" и для "Assembly"
- с использованием System.Configuration;
- с использованием System.Reflection;
если System.Configuration не отображается, вы должны добавить ссылку "System.Configuration" в ссылках
4- вы можете обновить конфигурации для dll, как показано ниже:
- откройте файл MyProj.dll.config "
- затем обновите свои настройки