ConfigurationManager.AppSettings выбирает файл конфигурации для домена приложения, в который вы загружены.Этот конфигурационный файл обычно тот, который связан с исполняемым файлом точки входа.В вашем случае вы не управляете ни исполняемым файлом точки входа, ни доменом приложения, в котором вы работаете, поэтому вы не можете использовать ConfigurationManager.AppSettings.
Ваш вопрос в основном сводится к «Как можно связать файл конфигурациис DLL?( C # Dll файл конфигурации ).Вам нужно сделать две вещи:
- Добавить элемент файла конфигурации приложения в свой проект и убедиться, что вы развернули его в той же папке, что и ваша DLL.
Доступ кКонфигурационный файл из вашей DLL, используя такой код:
string pluginAssemblyPath = Assembly.GetExecutingAssembly().Location;
Configuration configuration = ConfigurationManager.OpenExeConfiguration(pluginAssemblyPath);
string someValue = configuration.AppSettings.Settings["SomeKey"].Value;
Это определенно будет работать для обычных DLL, которые не загружаются с использованием теневого копирования.Я не уверен, как VS загружает свои плагины.Если у вас возникнут проблемы, дайте мне знать, и я могу опубликовать обходной путь для библиотек DLL, которые загружаются с помощью теневого копирования.