Получение приложений из app.config во время отладки

Я использую VS 2008 с .NET 3.5, и у меня возникают проблемы с получением настроек приложения при отладке. Я добавил ссылку на System.Configuration, и консольное приложение компилируется и запускается, но когда я пытаюсь получить параметр приложения, возвращаемое значение всегда равно нулю.

App.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
        <section name="ConsoleApp.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
 </configSections>
 <applicationSettings>
    <ConsoleApp.Properties.Settings>
        <setting name="LogDirectory" serializeAs="String">
            <value>\c$\TestApp\LOG\</value>
        </setting>
    </ConsoleApp.Properties.Settings>
 </applicationSettings>
</configuration>

Фрагмент кода:

string logPath = @"\\" + machineName + ConfigurationManager.AppSettings["LogDirectory"];

Я делаю что-то явно неправильно здесь?

РЕДАКТИРОВАТЬ: чтобы уточнить, что XML app.config был сгенерирован автоматически. Я добавил в проект новый элемент файла конфигурации приложения, а затем использовал вкладку настроек в окне свойств проекта, чтобы добавить параметр LogDirectory.


person Talvalin    schedule 26.11.2009    source источник


Ответы (2)


Почему бы просто не использовать Свойства? Вы можете получить доступ к своим свойствам, используя Properties.Settings.Default.WhatEverYouWant?

Это эффективно и реализовано в Visual Studio.

person Stéphane    schedule 26.11.2009
comment
Не могли бы вы привести пример кода, пожалуйста? Я пытался использовать Properties.Settings.Default.LogDirectory, и я получаю сообщение об ошибке компиляции, в котором говорится, что имя «Свойства» не существует в текущем контексте. - person Talvalin; 27.11.2009
comment
Это ваши настройки: ‹applicationSettings› ‹ConsoleApplication2.Properties.Settings› ‹setting name=SettingName serializeAs=String› ‹value›This a the value‹/value› ‹/setting› ‹/ConsoleApplication2.Properties.Settings› ‹/applicationSettings › Вы можете получить к нему доступ через Properties.Settings.Default.SettingName - person Stéphane; 27.11.2009
comment
Извините, форматирование XML-части не выдержало. Но суть в том, чтобы использовать: Properties.Settings.Default.SettingName И, кстати, вам нужно перейти к свойствам вашего проекта и добавить настройку, это добавит файл app.config, и у вас будет доступ к свойствам. - person Stéphane; 27.11.2009
comment
Я столкнулся с небольшой проблемой из-за разницы между пространством имен моего проекта и фактическим именем проекта. Как только я это исправил, ваше предложение сработало, так что спасибо! - person Talvalin; 30.11.2009

Вам нужно что-то вроде этого — настройки приложения — это, по сути, словарь строк.

<configuration>
  <appSettings>
    <add key="LogDirectory" value="\c$\TestApp\LOG\"/>
  </appSettings>
</configuration>

Подробнее о настройках приложения см. здесь.

person Fiona - myaccessible.website    schedule 26.11.2009