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

时间:2018-05-07 21:44:44

标签: c# app-config

我需要使用与设置设计器中默认设置值不同的连接字符串,才能在我的登台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

非常感谢任何想法或想法。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您需要访问配置管理器

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

将您的连接字符串名称更改为更简单的名称,或者您必须使用所有

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

如果要使用系统属性,则应添加system.reflection引用