2009-11-26 23 views
0

我正在使用VS 2008和.NET 3.5,並且在調試時遇到檢索應用程序設置的麻煩。我添加了對System.Configuration的引用,並且控制檯應用程序編譯並運行,但是當我嘗試檢索應用程序設置時,返回值始終爲空。在調試過程中從app.config中檢索應用程序

的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"]; 

我做得顯然是錯誤的嗎?

編輯:澄清,該app.config XML是自動生成的。我向該項目添加了一個新的應用程序配置文件項目,然後使用項目屬性窗口的設置選項卡添加LogDirectory設置。

回答

2

爲什麼不只是使用屬性? 您可以使用Properties.Settings.Default.WhatEverYouWant訪問您的屬性?

這是有效的,並在Visual Studio中烘焙。

+0

您能給一個代碼示例嗎?我試過使用「Properties.Settings.Default.LogDirectory」,我得到一個編譯錯誤,指出「名稱'屬性'在當前上下文中不存在」。 – Talvalin 2009-11-27 10:19:57

+0

這是您的設置: <的applicationSettings> <設置名= 「SettingName」 serializeAs = 「字符串」> 這一個值 您可以通過Properties.Settings.Default.SettingName來訪問它 – 2009-11-27 19:43:04

+0

抱歉,XML部分的格式不成立。但底線是使用:Properties.Settings.Default.SettingName 順便說一句,你必須去你的項目屬性和添加一個設置這將添加一個app.config文件,你將有權訪問的屬性。 – 2009-11-27 19:49:03

2

你需要這樣的東西 - 應用程序設置本質上是一個字符串字典。

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

有關應用程序設置的更多信息,請查看here