vs 2010读取配置设置

时间:2011-08-23 20:54:36

标签: vb.net visual-studio-2010 configurationmanager

在VS 2010中的VB.net中编码。我有:

Imports System.Configuration我添加了对System.Configuration的引用。

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

执行,失败,“对象引用未设置为对象的实例”。 sDBName已设置。

我错过了什么?


回应:

很抱歉延迟回复你;其他事情需要我的关注。

我的app.config文件中没有这样的部分。我通过Settings1.settings文件添加了sDBName和其他设置;这些对象会自动显示在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 个答案:

答案 0 :(得分:3)

您已经说过sDBName已设置:sDBName设置是否包含在主应用程序的配置中,或仅包含在代码所包含的程序集的配置中?

它必须位于入口点程序集的配置中,因为这是应用程序启动时加载的配置。

如果在那里设置,那么您应该发布您的配置,以便我们可以看到设置以检查问题。


回复评论时更新:

在app.config中,该设置应显示在appSettings部分,例如:

  <appSettings>
    <add key="sDBName" value="devDB"/>
  </appSettings>

答案 1 :(得分:3)

您在VB中引用的设置与在C#中的设置略有不同。最简单的方法是使用属于项目的设置,然后通过My命名空间引用它:

MessageBox.Show(My.Settings.sDBName)

(注意,这里不需要.ToString,因为sDBName已经是一个字符串了。)

由于您要包含一个单独的设置文件,因此您应该能够通过调用Default方法来获取实例,然后调用默认情况下的属性来访问其值:

MessageBox.Show(Settings1.Default.sDBName)

答案 2 :(得分:0)

您好我有同样的错误,您检查解决方案只是图层,并以图层形式保留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>

答案 3 :(得分:0)

您无需遵循长程序。最简单的方法是

`msgBox(My.Settings.sDBName)`

这会给你sDBName的值