Configuration Application Block这个模块现在已经合并到.Net 2.0 System.Configuration中了,所以EL中不再单独保留这一模块,也就是说这部分功能完全用.net 2.0自带的功能就可实现

image

一,下载并安装好Enterprise Library 4.1

二,新建一个Web应用程序

三,右键点击Web.Config 文件 使用 Edit Enterprise Library Configuration 可以编辑Web.Config 但这里我没有无需编辑它

image

四,新建一个待保存的类型,下面是官方的示例程序

using System.Text;
using System.Configuration;

namespace ConfigurationBlock
{
    /// <summary>
    /// Summary description for ConfigurationData.
    /// </summary>
    public class EditorFontData : ConfigurationSection 
    {        

        public EditorFontData()
        {          
        }

        [ConfigurationProperty("name")]
        public string Name 
        {
            get { return (string)this["name"]; }
            set{ this["name"] = value; }
        }

        [ConfigurationProperty("size")]
        public float Size 
        {
            get{ return (float)this["size"]; }
            set{ this["size"] = value; }
        }

        [ConfigurationProperty("style")]
        public int Style 
        {
            get { return (int)this["style"]; }
            set{ this["style"] = value; }
        } 

        public override string ToString() 
        {
            StringBuilder sb = new StringBuilder();
            sb.AppendFormat("Name = {0}; Size = {1}; Style = {2}", Name, Size.ToString(), Style.ToString());

            return sb.ToString();
        }
    }
}

 

五,在页面中拖放按钮和文本框,并编写事件,保存配置信息的时候会生成一个新的配置文件来保存web.config.config  这样的格式,这是为了避免删除掉原有配置文件而新建的吧。

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.IO;

namespace ConfigurationBlock
{
    public partial class _Default : System.Web.UI.Page
    {
        const string SECTIONNAME = "EditorSettings";
        private FileSystemWatcher watcher;
        Configuration config;
        protected void Page_Load(object sender, EventArgs e)
        {
            config = ConfigurationManager.OpenExeConfiguration(Server.MapPath("Web.config"));
    
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            
            EditorFontData configData = new EditorFontData();
            configData.Name = this.TextBox2.Text;
            configData.Size = 19;
            configData.Style = 9;
            
            config.Sections.Remove(SECTIONNAME);
            config.Sections.Add(SECTIONNAME, configData);
            config.Save();

        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            GetSection();
        }
        private void GetSection()
        {
            //winform环境下,不加这一行,则永远读取的是缓存中的“旧”值;webform中因为页面刷新的关系,不加也可以正常读取到新的值
            ConfigurationManager.RefreshSection(SECTIONNAME);//清空缓存
            

            EditorFontData configData = config.GetSection(SECTIONNAME) as EditorFontData;
            if (configData != null)
            {
                this.TextBox1.Text = configData.ToString();
            }
            else
            {
                this.TextBox1.Text = SECTIONNAME + "配置节读取失败!";
            }
        
        }

    }
}

 

 

 

 

示例源码下载:EL41Sample.rar
Enterprise Library 4.1 目录:Enterprise Library 4.1 快速使用图文笔记 目录

posted on 2009-10-03 18:05  冯瑞涛  阅读(1835)  评论(4编辑  收藏  举报