Я пытаюсь использовать файл конфигурации в своем консольном приложении 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
Вы не можете изменить имя в app.config и ожидать, что ConfigurationManager
найдет его, не предоставляя дополнительных сведений. Измените имя myProjectName.config обратно на app.config, перестройте, и вы увидите файл в папке bin с именем myProjectName.exe.config. Тогда ваш вызов 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;
}