Я хочу прочитать файл 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);
}