无法从app.config文件中读取新添加的连接字符串

3

我正在运行时向我的App.config文件中添加连接字符串,如下所示:

ConnectionStringSettings connSettings = new ConnectionStringSettings("dbConnectionString", "Data Source=DBSERVERNAME,1111;Initial Catalog=DBNAME;Integrated Security=false;User ID=USERID;Password=PASSWORD");
            var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            config.ConnectionStrings.ConnectionStrings.Add(connSettings);
            config.Save();

这段代码正确地将连接字符串添加到app.config文件中。

然后我尝试像这样创建一个SqlConnectionStringBuilder类:

SqlConnectionStringBuilder destinationConnection = new SqlConnectionStringBuilder(ConfigurationManager.ConnectionStrings["dbConnectionString"].ConnectionString);

我遇到了一个空引用异常。为什么会出现空引用异常?我在这里漏掉了什么吗?


你能检查一下 ConfigurationManager.ConnectionStrings["dbConnectionString"] 的值吗? - helencrump
它是空的。我想知道为什么它的值为空,因为我已经将它添加到了App.config中。 - subs
1个回答

3
配置类会缓存读取的文件。在代码中获取新值之前,您需要刷新相应的配置部分。
ConfigurationManager.RefreshSection("connectionStrings");

更新:您实际上是在同一个进程(和应用程序域)中同时更新app.config并尝试访问连接字符串吗?如果是这样,刷新配置部分应该是不必要的。如果您将两个片段粘贴到控制台应用程序的Main方法中,则可以按预期工作,无需刷新该部分。


是的,我在同一个进程中进行了两个操作。但仍然无法正常工作。我需要刷新连接字符串部分才能使其正常工作。谢谢。 - subs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接