devildx2050 Ответов: 1

Я хочу прочитать файл app.cofig из проекта библиотеки классов


Привет,

У меня есть проект типа библиотеки классов, который использует файл app.config, но я не могу получить доступ к этому файлу конфигурации для этой библиотеки классов.


Я получаю null в объекте config

Что я уже пробовал:

публичный статический словарь< string, & gt; GetConfig()
{
var executingAssembly = система.Отражение.Собрание.GetExecutingAssembly();
var location = executingAssembly.Местоположение;
Система.Окна.Форм.Функции MessageBox.Показать (местоположение);
var config = система.Конфигурация.Конфигурационный менеджер.OpenExeConfiguration(location);
);

объект paypalConfigSection = null;

пробовать
{
if (config != null)
{
var sections = config.Разделы; //количество этих разделов равно 21
paypalConfigSection = разделы;
}

}
улов (система.Исключение экс)
{
throw new ConfigException ("невозможно загрузить раздел 'paypal' из *. config: "+ ex. Message);
}

if (paypalConfigSection = = null)
{
бросить новый ConfigException(
"Не удается разобрать файл *.Config. Убедитесь, что вы правильно настроили раздел "paypal".");
}

Система.Конфигурация.NameValueConfigurationCollection settings = (System.Конфигурация.NameValueConfigurationCollection) paypalConfigSection.Метод gettype().Метод Getproperty("Настройки").И getValue(paypalConfigSection, нуль);
configValues = новый словарь & lt;string,>();
foreach (System.Конфигурация.Настройка NameValueConfigurationElement в настройках)
{
configValues.Добавить (настройка.Имя, обстановка.Ценность);
}

int index = 0;
foreach (System.Конфигурация.Элемент ConfigurationElement в (System.Конфигурация.ConfigurationElementCollection) paypalConfigSection.GetType (). GetProperty ("Учетные Записи").И getValue(paypalConfigSection, нуль))
{
Account account = (счет)элемент;
if (! string.IsNullOrEmpty (счет.APIUserName))
{
configValues.Добавить("счет" + индекс + ".apiUsername", счет.APIUserName);
}
if (! string.IsNullOrEmpty (счет.APIPassword))
{
configValues.Добавить("счет" + индекс + ".apiPassword", счет.APIPassword);
}
if (! string.IsNullOrEmpty (счет.Аписигнатура))
{
configValues.Добавить("счет" + индекс + ".apiSignature", счет.Аписигнатура);
}
if (! string.IsNullOrEmpty (счет.Апицертификат))
{
configValues.Добавить("счет" + индекс + ".apiCertificate", счет.Апицертификат);
}
if (! string.IsNullOrEmpty (счет.PrivateKeyPassword))
{
configValues.Добавить("счет" + индекс + ".privateKeyPassword", счет.PrivateKeyPassword);
}
if (! string.IsNullOrEmpty (счет.CertificateSubject))
{
configValues.Добавить("счет" + индекс + ".тема", учетная запись.CertificateSubject);
}
if (! string.IsNullOrEmpty (счет.Ид_приложения))
{
configValues.Добавить("счет" + индекс + ".ид_приложения", счет.Ид_приложения);
}
индекс++;
}
// return ConfigManager.Пример.Метод getproperties();
возвращает новый словарь & lt;string,> (configValues);
}

1 Ответов

Рейтинг:
0

divya behera

Местоположение, которое вы предоставляете, относится к файлу .dll, поэтому код не может найти местоположение файла. config. Можете ли вы попробовать изменить строку местоположения, которая ссылается на папку config.