0

我正在尝试编写服务和配置应用程序。VB/C++ 2010 我在 google 上获得了很多点击,但它们在很大程度上似乎已经过时了。到目前为止,我所拥有的是一个具有单个表单应用程序和一个服务应用程序的项目。单一表单应用程序有一个“app.config”文件,我添加了一个部分:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings file="settings.config">
    </appSettings>
</configuration>

在解决方案中,我添加了一个“settings.config”文件,其内容为:

<?xml version="1.0" encoding="utf-8"?>
<appSettings>
    <add key="Setting1" value="This is Setting 1 from settings.config" />
    <add key="Setting2" value="This is Setting 2 from settings.config" />
    <add key="ConnectionString" value="ConnectString from settings.confg" />
</appSettings>

我添加了对 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\Profile\Client\System.Configuration.dll 的引用

表单应用程序和服务应用程序中的库

在非常简单的表单应用程序中,我有以下代码

    Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load

        Dim s As String = _
 System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
        TextBox1.Text = s
    End Sub

它不起作用!现在很明显我错过了一些东西。它可能非常简单。但我有限的理解是,这是由我拥有的配置文件自动配置的?MS 以他们惯常的方式似乎只提供 2012 年和净 4.5 或更高的样本。我需要它才能在 2003 服务器上工作(以及)所以我仅限于 net 4.0

4

2 回答 2

1

这里的问题是该行System.Configuration.ConfigurationManager.AppSettings("ConnectionString")正在寻找ConnectionString应用程序app.config文件中的密钥。

您在 app.config 文件中包含该密钥这一事实file并不会神奇地告诉您ConfigurationManager从其他文件加载设置。如果这是您想要的,则必须读取file密钥的设置,然后从该文件手动加载配置。

自从 .Net 的早期版本以来,这并没有改变,所以我不确定为什么你会被这些例子所困扰。

于 2013-03-19T13:36:19.447 回答
0

添加对现有程序集的.Net section引用Add Reference Popup

但我建议你connectionStrings section在你的配置文件中使用

<connectionStrings>
<add name="myConnectionString" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" />
</connectionStrings>

string connStr = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
于 2013-03-19T13:36:38.983 回答