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

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

<?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

7
задан badpanda 8 June 2010 в 17:48
поделиться

3 ответа

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

8
ответ дан 6 December 2019 в 21:10
поделиться

проверьте документацию

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

2
ответ дан 6 December 2019 в 21:10
поделиться

Во-первых, используйте 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;
    }
2
ответ дан 6 December 2019 в 21:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: