在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>
答案 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的值