2014-10-03 4 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

Поскольку у вас нет раздела конфигурации appSettings, содержащего элемент «добавить» с ключом LogFolder, вы вызываете ToString() в нулевой ссылке. – Joe

+1

'applicationSettings' определенно <>' appSettings' –

+0

Да, теперь я читаю разницу между 'applicationSettings' и' appSettings' – XardasLord

ответ

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 в точке входа проекта (например, проекта которое выполнено)

Смежные вопросы