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

时间:2022-11-28 13:19:48

写在前面:

最近准备写Enterprise Library Step By Step的系列文章,对于每一个应用程序块,我都会用入门篇,进阶篇,剖析篇三篇文章去写。 在入门篇里会详细介绍应用程序块的使用步骤,主要是针对新手入门的;进阶篇会介绍一些应用程序块的更深的应用及扩展机制;剖析篇会去分析应用程序块的底层设计和类设计的一些内容。所有的观点都纯属个人理解,有不当之处请大家多多指教。

一.配置应用程序块概述:

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

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

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

.支持不同的配置存储

.支持配置信息的加密

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

.支持复杂的配置对象

Config Config Block Block 的使用场景:

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

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

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

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

二.使用步骤:

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

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

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

 1 Enterprise Library Step By Step系列(一):配置应用程序块——入门篇using  System;
 2 Enterprise Library Step By Step系列(一):配置应用程序块——入门篇 using  System.Text;
 3 Enterprise Library Step By Step系列(一):配置应用程序块——入门篇 using  System.Xml.Serialization;
 4 Enterprise Library Step By Step系列(一):配置应用程序块——入门篇
 5 Enterprise Library Step By Step系列(一):配置应用程序块——入门篇 namespace  ConfigurationQuickStart
 6 Enterprise Library Step By Step系列(一):配置应用程序块——入门篇Enterprise Library Step By Step系列(一):配置应用程序块——入门篇 {
 7Enterprise Library Step By Step系列(一):配置应用程序块——入门篇    public class EditorFontData
 8Enterprise Library Step By Step系列(一):配置应用程序块——入门篇Enterprise Library Step By Step系列(一):配置应用程序块——入门篇    {        
 9Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        private string  name;
10Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        private float   size;
11Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        private int        style;
12Enterprise Library Step By Step系列(一):配置应用程序块——入门篇
13Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        public EditorFontData()
14Enterprise Library Step By Step系列(一):配置应用程序块——入门篇Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        {          
15Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        }

16Enterprise Library Step By Step系列(一):配置应用程序块——入门篇
17Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        public string Name 
18Enterprise Library Step By Step系列(一):配置应用程序块——入门篇Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        {
19Enterprise Library Step By Step系列(一):配置应用程序块——入门篇Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            getreturn name; }
20Enterprise Library Step By Step系列(一):配置应用程序块——入门篇Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            set{ name = value; }
21Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        }
 
22Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        
23Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        public float Size 
24Enterprise Library Step By Step系列(一):配置应用程序块——入门篇Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        {
25Enterprise Library Step By Step系列(一):配置应用程序块——入门篇Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            getreturn size; }
26Enterprise Library Step By Step系列(一):配置应用程序块——入门篇Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            set{ size = value; }
27Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        }
 
28Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        public int Style 
29Enterprise Library Step By Step系列(一):配置应用程序块——入门篇Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        {
30Enterprise Library Step By Step系列(一):配置应用程序块——入门篇Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            getreturn style; }
31Enterprise Library Step By Step系列(一):配置应用程序块——入门篇Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            set{ style = value; }
32Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        }
 
33Enterprise Library Step By Step系列(一):配置应用程序块——入门篇
34Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        public override string ToString() 
35Enterprise Library Step By Step系列(一):配置应用程序块——入门篇Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        {
36Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            StringBuilder sb = new StringBuilder();
37Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            sb.AppendFormat("Name = {0}; Size = {1}; Style = {2}", name, size.ToString(), style.ToString());
38Enterprise Library Step By Step系列(一):配置应用程序块——入门篇
39Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            return sb.ToString();
40Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        }

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

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

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

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

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

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

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

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

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

4.重命名configuration sectionEditorSettings

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

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

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

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

Enterprise Library Step By Step系列(一):配置应用程序块——入门篇
7
.在Enterprise Library Configuration 工具里面选择New | XML Serializer Transformer。指定它的Transformer
Enterprise Library Step By Step系列(一):配置应用程序块——入门篇

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

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

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

1 Enterprise Library Step By Step系列(一):配置应用程序块——入门篇copy  " $(ProjectDir)\*.config "   " $(TargetDir) "

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

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

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

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

    1 Enterprise Library Step By Step系列(一):配置应用程序块——入门篇using  Microsoft.Practices.EnterpriseLibrary.Configuration;

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

     1 Enterprise Library Step By Step系列(一):配置应用程序块——入门篇Enterprise Library Step By Step系列(一):配置应用程序块——入门篇 /// <summary>
     2Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        /// 写XML
     3Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        /// </summary>

     4 Enterprise Library Step By Step系列(一):配置应用程序块——入门篇         private   void  writeXmlConfigDataButton_Click( object  sender, EventArgs e)
     5 Enterprise Library Step By Step系列(一):配置应用程序块——入门篇Enterprise Library Step By Step系列(一):配置应用程序块——入门篇         {
     6Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            EditorFontData configData = new EditorFontData();
     7Enterprise Library Step By Step系列(一):配置应用程序块——入门篇
     8Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            if (fontDialog.ShowDialog() == DialogResult.OK)
     9Enterprise Library Step By Step系列(一):配置应用程序块——入门篇Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            {
    10Enterprise Library Step By Step系列(一):配置应用程序块——入门篇                configData.Name = fontDialog.Font.Name;
    11Enterprise Library Step By Step系列(一):配置应用程序块——入门篇                configData.Size = fontDialog.Font.Size;
    12Enterprise Library Step By Step系列(一):配置应用程序块——入门篇                configData.Style = Convert.ToInt32(fontDialog.Font.Style);
    13Enterprise Library Step By Step系列(一):配置应用程序块——入门篇                
    14Enterprise Library Step By Step系列(一):配置应用程序块——入门篇Enterprise Library Step By Step系列(一):配置应用程序块——入门篇                ///注意WriteConfiguration 方法,有两个参数:
    15Enterprise Library Step By Step系列(一):配置应用程序块——入门篇                ///第一个是配置节名称
    16Enterprise Library Step By Step系列(一):配置应用程序块——入门篇                ///第二个就是自定义配置类的对象
    17Enterprise Library Step By Step系列(一):配置应用程序块——入门篇                ///实际上就是将配置数据写到这个配置节里去了
    18Enterprise Library Step By Step系列(一):配置应用程序块——入门篇                ///程序对此的处理是透明的

    19Enterprise Library Step By Step系列(一):配置应用程序块——入门篇                ConfigurationManager.WriteConfiguration("EditorSettings", configData);
    20Enterprise Library Step By Step系列(一):配置应用程序块——入门篇
    21Enterprise Library Step By Step系列(一):配置应用程序块——入门篇                StringBuilder results = new StringBuilder();
    22Enterprise Library Step By Step系列(一):配置应用程序块——入门篇                results.Append("Configuration Data Updated:");
    23Enterprise Library Step By Step系列(一):配置应用程序块——入门篇                results.Append(Environment.NewLine);
    24Enterprise Library Step By Step系列(一):配置应用程序块——入门篇                results.Append('\t');
    25Enterprise Library Step By Step系列(一):配置应用程序块——入门篇                results.Append(configData.ToString());
    26Enterprise Library Step By Step系列(一):配置应用程序块——入门篇
    27Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            }

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

    4.读配置信息:

     1 Enterprise Library Step By Step系列(一):配置应用程序块——入门篇Enterprise Library Step By Step系列(一):配置应用程序块——入门篇 /// <summary>
     2Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        /// 读XML
     3Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        /// </summary>

     4 Enterprise Library Step By Step系列(一):配置应用程序块——入门篇         private   void  readXmlConfigDataButton_Click( object  sender, System.EventArgs e)
     5 Enterprise Library Step By Step系列(一):配置应用程序块——入门篇Enterprise Library Step By Step系列(一):配置应用程序块——入门篇         {
     6Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            Cursor = System.Windows.Forms.Cursors.WaitCursor;
     7Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            
     8Enterprise Library Step By Step系列(一):配置应用程序块——入门篇Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            ///GetConfiguration方法就一个参数,即配置节名称
     9Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            ///注意别忘了进行强制类型转换

    10Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            EditorFontData configData = ConfigurationManager.GetConfiguration("EditorSettings"as EditorFontData;
    11Enterprise Library Step By Step系列(一):配置应用程序块——入门篇
    12Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            StringBuilder results = new StringBuilder();            
    13Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            results.Append("Configuration settings:");
    14Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            results.Append(Environment.NewLine);
    15Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            results.Append('\t');
    16Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            results.Append(configData.ToString());
    17Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            results.Append(Environment.NewLine);
    18Enterprise Library Step By Step系列(一):配置应用程序块——入门篇
    19Enterprise Library Step By Step系列(一):配置应用程序块——入门篇            Cursor = System.Windows.Forms.Cursors.Arrow;
    20Enterprise Library Step By Step系列(一):配置应用程序块——入门篇        }

    入门篇就到这里了,下面我会尽快写配置应用程序块的进阶篇及剖析篇的:)