技术开发 频道

Enterprise Library Step By Step系列(一):配置应用程序块——入

【IT168技术文档】
一.配置应用程序块概述:

      几乎每一个应用程序都需要一些配置信息,这些信息可以是简单的数据库连接信息,或者复杂的多块多层次用户信息。如何以及在哪里存储应用程序配置数据是程序员经常面临的问题。

.为应用系统提供了一个通用的配置管理解决方案,可方便灵活地从各种存储中读写配置信息配置信息

.为读写配置信息提供了简单的接口

.支持不同的配置存储

.支持配置信息的加密

.支持配置文件的动态更新

.支持复杂的配置对象

Config Config Block Block 的使用场景:

.应用系统需要在运行时读写复杂的配置信息

.应用系统需要在配置文件中保存敏感数据(比如密码)

.设计应用系统时能帮助开发人员进行正确的配置读写

.应用系统部署后系统管理员能有一个好的工具修改XM 配置文件

二.使用步骤:

假设已经新建好的项目中,并且已经存在Web.configApp.config配置文件。

第一步:建立自定义配置数据类:

该类根据项目的实际情况建立,需要注意的是该类必须是可序列化的(XMLSerializer),并且可以任意复杂

1using System; 2using System.Text; 3using System.Xml.Serialization; 4 5namespace ConfigurationQuickStart 6{ 7 public class EditorFontData 8 { 9 private string name; 10 private float size; 11 private int style; 12 13 public EditorFontData() 14 { 15 } 16 17 public string Name 18 { 19 get{ return name; } 20 set{ name = value; } 21 } 22 23 public float Size 24 { 25 get{ return size; } 26 set{ size = value; } 27 } 28 public int Style 29 { 30 get{ return style; } 31 set{ style = value; } 32 } 33 34 public override string ToString() 35 { 36 StringBuilder sb = new StringBuilder(); 37 sb.AppendFormat("Name = {0}; Size = {1}; Style = {2}", name,
size.ToString(), style.ToString());
38 39 return sb.ToString(); 40 } 41 } 42} 43

 


第二步:用
Enterprise Library Configuration配置应用程序:

1.运行Enterprise Library Configuration 工具,选择File | Open Application 打开App.config文件

2.右击Application并选择New | Configuration Application Block,创建一个配置应用程序块

3.右击 Configuration Application Block 并选择 New | Configuration Section,创建一个配置区,
注意对于每一个配置区都要设置一个Storage Provider 和一个Transformer。

4.重命名configuration section为EditorSettings


 

 

 

5.右击EditorSettings 并选择New | XML File Storage Provider,设置它的Storage Provider

6.在FileName输入框中输入EditorSettings.config,路径相对于App.config


7.在Enterprise Library Configuration 工具里面选择New | XML Serializer Transformer。指定它的
Transformer


8.选择File | Save All命令保存全部

9.此时在VS中选择项目|显示所有文件,就会发现在项目中多出了一个名为EditorSettings.config
   
的配置文件

10.在项目中选择 属性|生成事件|生成后事件命令行 输入如下内容:

1copy "$(ProjectDir)\*.config" "$(TargetDir)"

 

 

 

第三步:用代码访问配置数据:

1.在项目中添加如下两个引用

    • Microsoft.Practices.EnterpriseLibrary.Common.dll,
    • Microsoft.Practices.EnterpriseLibrary.Configuration.dll.

2.并在.CS代码中添加:

 

 

1using Microsoft.Practices.EnterpriseLibrary.Configuration;

3.写配置信息:注意在写配置信息时是整个配置区被覆盖(无合并),另外,元配置文件必须包含该配置区的定义。

 

 

1/**//// <summary> 2 /// 写XML 3 /// </summary> 4 private void writeXmlConfigDataButton_Click(object sender, EventArgs e) 5 { 6 EditorFontData configData = new EditorFontData(); 7 8 if (fontDialog.ShowDialog() == DialogResult.OK) 9 { 10 configData.Name = fontDialog.Font.Name; 11 configData.Size = fontDialog.Font.Size; 12 configData.Style = Convert.ToInt32(fontDialog.Font.Style); 13 14 /**////注意WriteConfiguration 方法,有两个参数: 15 ///第一个是配置节名称 16 ///第二个就是自定义配置类的对象 17 ///实际上就是将配置数据写到这个配置节里去了 18 ///程序对此的处理是透明的 19 ConfigurationManager.WriteConfiguration("EditorSettings", configData); 20 21 StringBuilder results = new StringBuilder(); 22 results.Append("Configuration Data Updated:"); 23 results.Append(Environment.NewLine); 24 results.Append('\t'); 25 results.Append(configData.ToString()); 26 27 } 28

4.读配置信息:

1/**//// <summary> 2 /// 读XML 3 /// </summary> 4 private void readXmlConfigDataButton_Click(object sender, System.EventArgs e) 5 { 6 Cursor = System.Windows.Forms.Cursors.WaitCursor; 7 8 /**////GetConfiguration方法就一个参数,即配置节名称 9 ///注意别忘了进行强制类型转换 10 EditorFontData configData = ConfigurationManager.GetConfiguration(
"EditorSettings") as EditorFontData; 11 12 StringBuilder results = new StringBuilder(); 13 results.Append("Configuration settings:"); 14 results.Append(Environment.NewLine); 15 results.Append('\t'); 16 results.Append(configData.ToString()); 17 results.Append(Environment.NewLine); 18 19 Cursor = System.Windows.Forms.Cursors.Arrow; 20 }

 

 

 

0
相关文章