Enterprise Library Step By Step系列(一):配置应用程序块——入门篇
寫在前面:
最近準備寫Enterprise Library Step By Step的系列文章,對于每一個應用程序塊,我都會用入門篇,進階篇,剖析篇三篇文章去寫。 在入門篇里會詳細介紹應用程序塊的使用步驟,主要是針對新手入門的;進階篇會介紹一些應用程序塊的更深的應用及擴展機制;剖析篇會去分析應用程序塊的底層設(shè)計和類設(shè)計的一些內(nèi)容。所有的觀點都純屬個人理解,有不當之處請大家多多指教。
一.配置應用程序塊概述:
????? 幾乎每一個應用程序都需要一些配置信息,這些信息可以是簡單的數(shù)據(jù)庫連接信息,或者復雜的多塊多層次用戶信息。如何以及在哪里存儲應用程序配置數(shù)據(jù)是程序員經(jīng)常面臨的問題。
.為應用系統(tǒng)提供了一個通用的配置管理解決方案,可方便靈活地從各種存儲中讀寫配置信息配置信息
.為讀寫配置信息提供了簡單的接口
.支持不同的配置存儲
.支持配置信息的加密
.支持配置文件的動態(tài)更新
.支持復雜的配置對象
Config Config Block Block 的使用場景:
.應用系統(tǒng)需要在運行時讀寫復雜的配置信息
.應用系統(tǒng)需要在配置文件中保存敏感數(shù)據(jù)(比如密碼)
.設(shè)計應用系統(tǒng)時能幫助開發(fā)人員進行正確的配置讀寫
.應用系統(tǒng)部署后系統(tǒng)管理員能有一個好的工具修改XM 配置文件
二.使用步驟:
假設(shè)已經(jīng)新建好的項目中,并且已經(jīng)存在Web.config或App.config配置文件。
第一步:建立自定義配置數(shù)據(jù)類:
該類根據(jù)項目的實際情況建立,需要注意的是該類必須是可序列化的(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,創(chuàng)建一個配置應用程序塊
3.右擊 Configuration Application Block 并選擇 New | Configuration Section,創(chuàng)建一個配置區(qū),注意對于每一個配置區(qū)都要設(shè)置一個Storage Provider 和一個Transformer。
4.重命名configuration section為EditorSettings
5.右擊EditorSettings 并選擇New | XML File Storage Provider,設(shè)置它的Storage Provider
6.在FileName輸入框中輸入EditorSettings.config,路徑相對于App.config
7.在Enterprise Library Configuration 工具里面選擇New | XML Serializer Transformer。指定它的Transformer
8.選擇File | Save All命令保存全部
9.此時在VS中選擇項目|顯示所有文件,就會發(fā)現(xiàn)在項目中多出了一個名為EditorSettings.config的配置文件
10.在項目中選擇 屬性|生成事件|生成后事件命令行 輸入如下內(nèi)容:
1copy?"$(ProjectDir)\*.config"?"$(TargetDir)"第三步:用代碼訪問配置數(shù)據(jù):
1.在項目中添加如下兩個引用
- Microsoft.Practices.EnterpriseLibrary.Common.dll,
- Microsoft.Practices.EnterpriseLibrary.Configuration.dll.
2.并在.CS代碼中添加:
3.寫配置信息:注意在寫配置信息時是整個配置區(qū)被覆蓋(無合并),另外,元配置文件必須包含該配置區(qū)的定義。
?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?方法,有兩個參數(shù):
15????????????????///第一個是配置節(jié)名稱
16????????????????///第二個就是自定義配置類的對象
17????????????????///實際上就是將配置數(shù)據(jù)寫到這個配置節(jié)里去了
18????????????????///程序?qū)Υ说奶幚硎峭该鞯?/span>
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方法就一個參數(shù),即配置節(jié)名稱
?9????????????///注意別忘了進行強制類型轉(zhuǎn)換
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????????}
入門篇就到這里了,下面我會盡快寫配置應用程序塊的進階篇及剖析篇的:)
轉(zhuǎn)載于:https://www.cnblogs.com/Terrylee/archive/2005/10/14/254631.html
總結(jié)
以上是生活随笔為你收集整理的Enterprise Library Step By Step系列(一):配置应用程序块——入门篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vs.net 2005 中自定义模版项
- 下一篇: 打包,并自动安装SQL数据库