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

How do I overwrite the default settings value in the settings designer for my Connection String

我需要使用不同于设置设计器中默认设置值的连接字符串,以便 运行 在我的临时 PC 上。

我在 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"]));
    }
}

我的app.config是这样的:

<?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.reflection 引用