簡體   English   中英

C#使用appSettings參數在app.config中撰寫connectionString

[英]C# compose connectionString in app.config using appSettings parameters

是否可以使用同一文件中的appSettings參數在app.config組成一些xml條目(在我的情況下是一些connectionStrings )? 例:

  <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對象中使用此連接:

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

您當然可以看看使用SqlConnectionStringBuilder 將現有的連接字符串傳遞給構造函數。 設置PasswordUserID屬性。 然后調用ToString()

您將無法像DbContext那樣傳遞連接字符串。 您可以考慮將其重構為工廠模式或類似形式。

我還將考慮使用config轉換在構建時實際更新配置文件。

使用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"];

然后,獲取新的連接字符串:

builder.ToString();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM