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