如何在设置设计器中覆盖连接字符串的默认设置值



我需要使用与设置设计器中默认设置值中的连接字符串不同的连接字符串,以便在暂存电脑上运行。

我在settings.designer.cs:

[global::System.Configuration.DefaultSettingValueAttribute("Data Source=MyServer\MyDB;Initial Catalog=MyDB;Integrated Security=True;Pers" +
"ist Security Info=True")]
public string MyConnectionString {
get {
return ((string)(this["MyConnectionString"]));
}
}

我的应用程序配置是这样的:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<clear />
<add name="MyConnectionString " connectionString=Data Source=MyServer2\MyDB;Initial Catalog=MyDB;;Trusted_Connection=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<startup> 
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>

我希望应用程序使用 app.config 中的设置,但它坚持使用设置设计器文件中的设置。

我也尝试了以下各种排列:

<add name="AppName.Properties.Settings.Default.MyConnectionString" connectionString=Data Source=MyServer2\MyDB;Initial Catalog=MyDB;;Trusted_Connection=True"
providerName="System.Data.SqlClient" />

如:

AppName.Properties.Settings.GlobalReference.Default.MyConnectionString

和:

ApplicationSettings.AppName.Properties.Settings.GlobalReference.Default.MyConnectionString

任何想法或想法将不胜感激。

为了使其正常工作,您必须在引用中具有System.Configuration。

您需要访问配置管理器

System.Configuration.ConfigurationManager.ConnectionStrings["connectionStringName"].ConnectionString;

将连接字符串名称更改为更简单的名称,否则必须使用所有这些名称

System.Configuration.ConfigurationManager.ConnectionStrings["AppName.Properties.Settings.Default.MyConnectionString"].ConnectionString;

如果要使用系统属性,则应添加 System.反射引用