c#使用appSettings参数在app.config中编写connectionString

本文关键字:connectionString config app 使用 appSettings 参数 | 更新日期: 2023-09-27 18:04:39

是否可以使用来自同一文件的appSettings参数在app.config(在我的情况下一些connectionStrings)中组成一些xml条目?例子:

  <connectionStrings>
    <add name="MyContextDB" connectionString="Data Source =.;Initial Catalog = EFMyContextDB;Integrated Security = false;User Id=user;Password=pwd" providerName="System.Data.SqlClient" />
  </connectionStrings>
  <appSettings>
    <add key="UserId" value="userValue" />
    <add key="Password" value="pwdValue" />
  </appSettings>

我想以某种方式使用UserId代替userPassword代替MyContextDB's connectionStringpwd值。

此连接随后在DbContext object中使用:

public class MyContext : DbContext
{
    public MyContext() : base("name = MyContextDB") { }
    ...
}

c#使用appSettings参数在app.config中编写connectionString

你当然可以看看使用SqlConnectionStringBuilder。将现有的连接字符串传递给构造函数。设置PasswordUserID属性。然后调用ToString()

您将无法像DbContext那样传递连接字符串。您可以考虑将其重构为工厂模式或类似的模式。

我还会考虑使用配置转换在构建时实际更新配置文件。

使用SqlConnectionStringBuilder:

    System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder(System.Configuration.ConfigurationManager.ConnectionStrings["MyContextDB"].ToString());
    builder.UserID = System.Configuration.ConfigurationManager.AppSettings["UserId"];
    builder.Password = System.Configuration.ConfigurationManager.AppSettings["Password"];

然后,获取新的connectionstring:

builder.ToString();
相关文章:
  • 没有找到相关文章