Enterprise Library Step By Step系列(一):配置應(yīng)用程序塊——入門篇
寫在前面:
最近準(zhǔn)備寫Enterprise Library Step By Step的系列文章,對(duì)于每一個(gè)應(yīng)用程序塊,我都會(huì)用入門篇,進(jìn)階篇,剖析篇三篇文章去寫。 在入門篇里會(huì)詳細(xì)介紹應(yīng)用程序塊的使用步驟,主要是針對(duì)新手入門的;進(jìn)階篇會(huì)介紹一些應(yīng)用程序塊的更深的應(yīng)用及擴(kuò)展機(jī)制;剖析篇會(huì)去分析應(yīng)用程序塊的底層設(shè)計(jì)和類設(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ǔ)中讀寫配置信息配置信息
.為讀寫配置信息提供了簡(jiǎn)單的接口
.支持不同的配置存儲(chǔ)
.支持配置信息的加密
.支持配置文件的動(dòng)態(tài)更新
.支持復(fù)雜的配置對(duì)象
Config Config Block Block 的使用場(chǎng)景:
.應(yīng)用系統(tǒng)需要在運(yùn)行時(shí)讀寫復(fù)雜的配置信息
.應(yīng)用系統(tǒng)需要在配置文件中保存敏感數(shù)據(jù)(比如密碼)
.設(shè)計(jì)應(yīng)用系統(tǒng)時(shí)能幫助開(kāi)發(fā)人員進(jìn)行正確的配置讀寫
.應(yīng)用系統(tǒng)部署后系統(tǒng)管理員能有一個(gè)好的工具修改XM 配置文件
二.使用步驟:
假設(shè)已經(jīng)新建好的項(xiàng)目中,并且已經(jīng)存在Web.config或App.config配置文件。
第一步:建立自定義配置數(shù)據(jù)類:
該類根據(jù)項(xiàng)目的實(shí)際情況建立,需要注意的是該類必須是可序列化的(XMLSerializer),并且可以任意復(fù)雜
using System;2
using System.Text;3
using System.Xml.Serialization;4

5
namespace ConfigurationQuickStart6
{7
public class EditorFontData8
{ 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)容:
copy "$(ProjectDir)\*.config" "$(TargetDir)"第三步:用代碼訪問(wèn)配置數(shù)據(jù):
1.在項(xiàng)目中添加如下兩個(gè)引用
- Microsoft.Practices.EnterpriseLibrary.Common.dll,
- Microsoft.Practices.EnterpriseLibrary.Configuration.dll.
2.并在.CS代碼中添加:
using Microsoft.Practices.EnterpriseLibrary.Configuration;3.寫配置信息:注意在寫配置信息時(shí)是整個(gè)配置區(qū)被覆蓋(無(wú)合并),另外,元配置文件必須包含該配置區(qū)的定義。
/// <summary>2
/// 寫XML3
/// </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è)就是自定義配置類的對(duì)象17
///實(shí)際上就是將配置數(shù)據(jù)寫到這個(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.讀配置信息:
/// <summary>2
/// 讀XML3
/// </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)制類型轉(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
}入門篇就到這里了,下面我會(huì)盡快寫配置應(yīng)用程序塊的進(jìn)階篇及剖析篇的:)
Worktile,新一代簡(jiǎn)單好用、體驗(yàn)極致的團(tuán)隊(duì)協(xié)同、項(xiàng)目管理工具,讓你和你的團(tuán)隊(duì)隨時(shí)隨地一起工作。完全免費(fèi),現(xiàn)在就去了解一下吧。
https://worktile.com



浙公網(wǎng)安備 33010602011771號(hào)