Как использовать файл конфигурации приложения в C#?

Я пытаюсь использовать файл конфигурации в моем консольном приложении C#. Я создал файл в рамках проекта по новой --> конфигурационный файл приложения, и назвав его имя_моего_проекта.конфиг. Мой конфигурационный файл выглядит так:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="SSDirectory" value="D:Documents and Settings****MyDocuments****" />
</appSettings>
</configuration>

код для доступа к ней выглядит так:

private FileValidateUtil()
    {
        sSDirFilePath = ConfigurationSettings.AppSettings["SSDirectory"];
        if (sSDirFilePath == null)
            Console.WriteLine("config file not reading in.");
    }

может ли кто-нибудь дать подсказку о том, почему это не работает? (Я получаю сообщение об ошибке.)

спасибо!!

badPanda

3 ответов


вы не можете изменить имя приложения.config и ожидать ConfigurationManager чтобы найти его, не предоставляя ему больше информации. Изменить имя имя_моего_проекта.конфигурации обратно в приложение.конфигурации, восстанавливать, и вы увидите файл в папке bin называется имя_моего_проекта.исполняемый.конфиг. Тогда ваш звонок в ConfigurationManager.AppSettings должно работать корректно.


Регистрация документации

http://msdn.microsoft.com/en-us/library/aa730869 (VS.80).aspx


во-первых, использовать ConfigurationManager вместо ConfigurationSettings.

во-вторых, вместо того, чтобы говорить "не работает", что не дает никакой полезной информации, расскажите нам, что вы видите. Он компилируется? Не бросать исключение во время выполнения? Ваш компьютер начинает курить и пахнуть, как плавящийся пластик?

попробуйте это:

    public string GetSSDirectory()
    {
        string sSDirFilePath = string.Empty;

        if (!ConfigurationManager.AppSettings.AllKeys.Contains("SSDirectory"))
        {
            Console.WriteLine("AppSettings does not contain key  \"SSDirectory\"");
        }
        else
        {
            sSDirFilePath = ConfigurationManager.AppSettings["SSDirectory"];
            Console.WriteLine("AppSettings.SSDirectory = \"" + sSDirFilePath + "\"");
        }

        return sSDirFilePath;
    }