2014-10-03 83 views
1

我從AppSettings訪問字符串變量時遇到問題。這裏是產生一個公知的錯誤的代碼:對象引用不設置爲一個對象使用AppConfig時出錯

Dim folderName As String = ConfigurationManager.AppSettings("LogFolder").ToString() 

的一個實例,這裏是一個App.config文件:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
     ... 
    </configSections> 
    <connectionStrings> 
    ... 
    </connectionStrings> 
    <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
    <applicationSettings> 
     <BazyPolaczenia.My.MySettings> 
      <setting name="LogFile" serializeAs="String"> 
       <value>"log.txt"</value> 
      </setting> 
      <setting name="LogFolder" serializeAs="String"> 
       <value>"d:\Logs"</value> 
      </setting> 
     </BazyPolaczenia.My.MySettings> 
    </applicationSettings> 
</configuration> 

我已經加入Imports System.Configuration 。這條線有什麼問題?

+3

由於您沒有包含帶有LogFolder鍵的「add」元素的appSettings配置節,因此您正在對空引用調用ToString()。 – Joe 2014-10-03 15:57:20

+1

'applicationSettings'肯定是<>'appSettings' – 2014-10-03 16:08:18

+0

是的,現在我正在讀'applicationSettings'和'appSettings'之間的區別 – XardasLord 2014-10-03 16:45:44

回答

2

您的配置文件是不正確的:

<configuration> 
    <configSections> 
    ... 
    </configSections> 
    <appSettings> 
    <add key="LogFile" value="log.txt" /> 
    <add key="LogFolder" value="d:\Logs" /> 
    </appSettings> 
<connectionStrings> 
    ... 
    </connectionStrings> 
</configuration> 

如果你正在運行一個網站,你需要在這你的web.config或在入口點項目的app.config(例如項目即執行)