vs 2010 чтение настроек конфигурации - PullRequest
3 голосов
/ 24 августа 2011

Кодирование в VB.net в VS 2010. У меня есть:

Imports System.Configuration и я добавил ссылку на System.Configuration.

Когда

**MsgBox(ConfigurationManager.AppSettings("sDBName").ToString)**

выполняется, он завершается неудачно с «Ссылка на объект не установлена ​​для экземпляра объекта». sDBName установлено.

Что я пропустил?


В ответ:

Извините за задержку с вами; другие вещи требовали моего внимания.

В моем файле app.config такого раздела нет. Я добавил sDBName и другие настройки через файл Settings1.settings; эти объекты автоматически отображаются в app.cong следующим образом:

<applicationSettings>
    <QuickRequest.Settings1>
        <setting name="sDBName" serializeAs="String">
            <value>xxx</value>
        </setting>
        <setting name="sInputPath" serializeAs="String">
            <value>c:\yyy\Infile\</value>
        </setting>
     </QuickRequest.Settings1>

Ответы [ 4 ]

3 голосов
/ 26 августа 2011

Вы ссылаетесь на настройки в VB немного иначе, чем в C #.Самый простой способ - использовать настройки, которые являются частью проекта, и затем ссылаться на него через пространство имен My:

MessageBox.Show(My.Settings.sDBName)

(Обратите внимание, что здесь вам не нужен .ToString, поскольку sDBName уже является строкой).

Поскольку вы включаете отдельный файл настроек, вы сможете получить доступ к его значениям, вызвав метод Default, чтобы получить экземпляр, а затем ваше свойство по умолчанию:

MessageBox.Show(Settings1.Default.sDBName)
3 голосов
/ 24 августа 2011

Вы сказали, что установлено sDBName: включена ли настройка sDBName в конфигурацию вашего основного приложения или просто в конфигурацию сборки, в которой содержится код?

Это должно быть в конфигурации сборки точки входа, так как эта конфигурация загружается при запуске вашего приложения.

Если он установлен там, то вы должны опубликовать свою конфигурацию, чтобы мы могли увидеть настройку для проверки на наличие проблем.


Обновление в ответ на комментарий:

В app.config настройка должна появиться в разделе appSettings, например:

  <appSettings>
    <add key="sDBName" value="devDB"/>
  </appSettings>
0 голосов
/ 02 февраля 2016

Вам не нужно выполнять длинные процедуры. Самый простой способ сделать это -

`msgBox(My.Settings.sDBName)`

это даст вам значение sDBName

0 голосов
/ 19 декабря 2013

Привет, у меня та же ошибка, что вы проверяете, что решение состоит только из слоев, и оставляете файл app.config в форме слоя и вызываете его из других слоев

1-reference to System.Configuration
2-Imports System.Configuration

, поэтому после вызова

As String Dim TextoConexion

TextoConexion = ConfigurationManager.AppSettings.Item ("CONNECT"). ToString

Ошибка возникает из-за того, что вы не видите «CONNECT», например

, также как и app.config

<appSettings>
<add key="CONEC" value="Server"/>
<add key="SERVIDOR" value="SQL2008R2"/>
</appSettings>
</configuration>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...