Quantcast
Channel: VITO小舖 - ASP.NET
Viewing all articles
Browse latest Browse all 41

自訂組態設定

$
0
0

設定 Web.Config 檔

使用 System.Configuration命名空間裡的 Configuration類別讀取 Web.config 檔案。

使用 Configuration.GetSection讀取組態檔的區段資訊。

讀取標準組態項目

Web.Config 中的每一個標準項目都有各自的類別,而且必須使用其類別存取組態資訊。例如:

  • AuthenticationSection:
  • AuthorizationSection:
  • HttpCookiesSection:
  • MembershipSection:
  • PagesSection:
  • SiteMapSection:
  • ......

protected void btnReadWebConfig_Click(object sender, EventArgs e)
{
//讀取 system.web 底下特定的 section
AuthenticationSection Authentication = (AuthenticationSection)WebConfigurationManager.GetSection("system.web/authentication");

//使用該類別的方法,讀取該類別的屬性
AuthenticationMode mode = AuthenticationMode.Forms;
}

讀取應用程式設定


protected void btnAppSetting_Click(object sender, EventArgs e)
{
string sLogo = WebConfigurationManager.AppSettings["LogoImagePath"];
}

讀取連接字串設定


protected void btnConnectionSetting_Click(object sender, EventArgs e)
{
//========================================
//讀取 ConnectionStrings
//========================================
string sConn = WebConfigurationManager.ConnectionStrings["TestDBConnectionString"].ConnectionString;

//========================================
//修改 ConnectionStrings
//========================================

//開啟設定檔
Configuration config = WebConfigurationManager.OpenWebConfiguration(null);

//讀取 ConnectionStrings
ConnectionStringSettingsCollection Connections = config.ConnectionStrings.ConnectionStrings;

//新增 ConnectionString
if (Connections["Conn2"] == null)
{
Connections.Add(new ConnectionStringSettings("Conn2", "Data Source=localhost; Initial Catalog=DBNAME;"));
}
else
{
Connections["Conn2"].ConnectionString = "Data Source=localhost; Initial Catalog=DBNAME1;";
}

//儲存 ConnectionStrings
config.Save();
}

儲存組態設定

因為組態資訊有可能來自於 machine.config 或 web.config ,所以要變更組態資訊就必須選擇組態檔的位置。


protected void btnWebConfig_Click(object sender, EventArgs e)
{
//開啟設定檔
Configuration rootConfig = WebConfigurationManager.OpenWebConfiguration(null);

//讀取 system.web 底下特定的 section
AuthenticationSection Authentication = (AuthenticationSection)rootConfig.GetSection("system.web/authentication");

//設定 AuthenticationSection 的屬性
Authentication.Mode = AuthenticationMode.Forms;

//儲存設定檔
rootConfig.Save();
}

如何使用 ConfigSource 設定關聯的組態區段

當設定 Web.Config 中的區段資料時,有時候為了管理方便,可以將區段內的設定資訊,獨立成一個設定檔,再透過 file 或 configSource 屬性 include 進來。

  • file:延伸外部檔案的setting
  • configSource:使用外部檔案的setting

在外部設定檔中,其根節點必須是設定的區段項目,而不是 configuration 項目。例如以下範例:

appSettings









透過 configSource屬性使用外部檔案的設定,則該區段裡頭不能含有任何設定。













透過 file屬性延伸外部檔案的設定,則該區段裡頭有重覆項目,會以外部檔案的設定為優先。








mailSettings

原始web.config












使用外部檔案的設定

















Viewing all articles
Browse latest Browse all 41

Trending Articles