Khi bạn sử dụng một trong các phương thức mở của WebConfigurationManager như là các phương thức OpenMachineConfiguration() hoặc OpenWebConfiguration(), phương thức trả về một thực thể của lớp Configuration lớp này hỗ trợ các phương thức sau:
AppSettings: trả về phần cấu hình appSettings
ConnectionStrings: Trả về phần cấu hình connectionStrings
EvaluationContext: trả về một thực thể của lớp ContextInformation mà cho phép bạn định rõ ngữ cảnh của thông tin cấu hình
FilePath: trả về đường dẫn vật lý tới file cấu hình.
HasFile: Trả về True khi có một file đưa ra thông tin cấu hình Locations: Trả về một danh sách định nghĩa cục bộ bởi cấu hình.
NamespaceDeclared: Trả về True khi file cấu hình bao gồm các khai báo không gian tên. RootSectionGroup: Trả về nhóm thư mục gốc.
SectionGroups: trả về nhóm con được chứa đựng bởi cấu hình này. Sections: Trả về phần con chứa đựng bởi cấu hình này.
Lớp Configuration chỉ hỗ trợ các phương thức sau: GetSection: Cho phép bạn trả về phần cấu hình chỉ định
GetSectionGroup: Cho phép bạn trả về nhóm cấu hình chỉ định. Save: cho phép bạn ghi thông tin chỉnh sửa cấu hình.
SaveAs: Cho phép bạn ghi một file cấu hình mới.
Bạn có thể sử dụng thuộc tính Configuration.RootSectionGroup để lấy các phần chính trong một file cấu hình. Bạn có thể sử dụng thuộc tính SectionGroups để trả về tất cả các nhóm trong nhóm con và thuộc tính Sections để trả về tất cả các nhóm con nằm trong phần con.
Ví dụ: Gọi đệ quy hiển thị nội dung của file Machine.config trong một điều khiển TreeView <%@ PageLanguage="C#" AutoEventWireup="true"
CodeFile="ShowConfigContents.aspx.cs"Inherits="ShowConfigContents" %> <%@ ImportNamespace="System.Web.Configuration" %>
<script runat="server">
void Page_Load(object sender, EventArgs e) {
//Them nut dau tien
TreeNode parentNode = new TreeNode("configuration"); treeMachine.Nodes.Add(parentNode);
//Bat dau tu phan nhom goc
Configuration config = WebConfigurationManager.OpenMachineConfiguration(); //hien thi phan nhom con
AddChildSectionGroups(parentNode, config.RootSectionGroup); //hien thi phan con
AddChildSections(parentNode, config.RootSectionGroup); }
privatevoid AddChildSectionGroups(TreeNode parentNode, ConfigurationSectionGroup
parentConfigSectionGroup) {
foreach (ConfigurationSectionGroup configSectionGroup in
parentConfigSectionGroup.SectionGroups) {
TreeNode childNode = newTreeNode(configSectionGroup.SectionGroupName); parentNode.ChildNodes.Add(childNode);
AddChildSections(childNode, configSectionGroup); }
}
void AddChildSections(TreeNode parentNode, ConfigurationSectionGroup
parentConfigSectionGroup) {
foreach (ConfigurationSection configSection in parentConfigSectionGroup.Sections) {
TreeNode childNode = newTreeNode(configSection.SectionInformation.Name); parentNode.ChildNodes.Add(childNode);
} }
</script>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml"> <headrunat="server">
<title>Hiển thị nội dung cấu hình</title> </head>
<body>
<formid="form1"runat="server">
<div>
<asp:TreeViewID="treeMachine"runat="server">
</asp:TreeView>
</div>
</form> </body> </html>
a. Chỉnh sửa các file cấu hình
Bạn có thể sử dụng lớp WebConfigurationManager không chỉ để mở đọc các giá trị của thiết lập cấu hình, mà bạn còn có thể dùng nó để sửa hoặc thêm mới một nội dung cấu hình.
Lớp Configuration chỉ hỗ trợ hai phương thức ghi nhớ thông tin phương thức Save() và SaveAs(). Ví dụ sau cho phép bạn tắt hoặc mở cho một ứng dụng.
<%@ PageLanguage="C#" AutoEventWireup="true"
CodeFile="ShowConfigModify.aspx.cs"Inherits="ShowConfigModify" %> <%@ ImportNamespace="System.Web.Configuration" %>
<script runat="server">
void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath); CompilationSection section =
(CompilationSection)config.GetSection("system.web/compilation"); chkenableDebug.Checked = section.Debug;
} }
protected void btnUpdate_Click(object sender, EventArgs e) {
Configuration config =
WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath); CompilationSection section =
(CompilationSection)config.GetSection("system.web/compilation"); section.Debug = chkenableDebug.Checked;
config.Save(ConfigurationSaveMode.Modified); }
</script>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml"> <headrunat="server">
<title>Show Config Modify</title> </head>
<body>
<formid="form1"runat="server">
<div>
<asp:CheckBoxID="chkenableDebug"Text="Cho phép debug"runat="server"/>
<br/>
<asp:ButtonID="btnUpdate"OnClick="btnUpdate_Click"runat="server"Text="Cập nhật" />
</div>
</form> </body> </html>