Enterprise Library: Configuration Application Block类设计分析篇
Enterprise Library: Configuration Application Block類設計分析篇<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
?
Written by: Rickie Lee (rickieleemail#yahoo.com)
My blog: www.cnblogs.com/rickie
Configuration Application Block允許應用程序方便讀寫應用程序配置信息。
下圖顯示了Configuration Application Block中類和對象之間的關系,該圖假定你使用Application Block內置的XML文件Storage Provider和Transformer,XML文件Storage Provider存放配置數據到XML文件中(其他Providers使用其他Storage格式,如Windows注冊表)。XmlFileStorageProvider對象指向包含特定配置節配置信息的文件。ConfigurationBuilder對象指向包含特定配置節配置元數據的文件。一般情況下,包含配置元數據的文件為Windows應用程序的App.Config或Web應用程序的Web.Config文件。
Configuration Application Block隔離配置元數據和實際配置文件,Application Block將元數據放置在它自己的配置文件中,與實際的配置信息進行隔離。配置設置被組合在一起,并作為一個配置節。應用程序中每一個Enterprise Library的Application Block均使用它自己的配置節,并有對應的配置文件。Configuration Application Block通過使用配置元數據來訪問配置數據。
?
配置元數據包含有配置存儲位置、Transformer類型和Configuration Application Block用來讀寫配置數據的Storage Provider等等信息。配置元數據文件分成一些配置節,每一節包含讀寫配置設置中特定組的必要信息。ConfigurationManager類提供了靜態方法在定義的存儲位置讀寫指定配置節的配置設置。首先,ConfigurationManager對象從應用程序配置元數據文件讀取配置元數據信息,然后通過元數據信息讀寫配置節信息。
?
每一個配置節的設置都緩存在hashtable中。當client端請求配置數據時,ConfigurationBuilder將查詢緩存中的數據。如果在緩存中發現這些配置數據,ConfigurationBuilder對象則不訪問存儲區的配置數據。如果Storage Provider檢測存儲區內的數據發生變化,ConfigurationBuilder將清除緩存。ConfigurationManager對象允許應用程序清除整個或特定配置節的緩存,如果緩存被清除后,隨后的請求將訪問存儲區中的配置數據。
?
IStorageProviderReader接口定義了用來從存儲位置讀取配置信息,IStorageProviderWriter接口實現了IStorageProviderReader接口,并且定義了用來寫配置信息的接口。Configuration Application Block中的XmlFileStorageProvider實現了上述接口,用來讀寫XML配置文件。
ITransformer接口用來在應用程序與Storage Provider之間轉換配置設置對象,Configuration Application Block中的XmlSerializerTransformer類實現了該接口。XmlSerializerTransformer類轉換應用程序中定義的對象和XmlNode對象。應用程序不是必須要求配置Transformer,如果沒有Transformer,返回給應用程序的配置設置對象與Storage Provider提供的對象類型一樣。
?
***
作者:Rickie Lee (rickieleemail#yahoo.com)
本文參考Enterprise Library, Configuration Application Block文檔。
?
References:
1. Enterprise Library, Configuration Application Block
2. Rickie, Microsoft patterns & practices Enterprise Library January 2005 [中文稿], http://www.cnblogs.com/rickie/archive/2005/01/30/99443.html
3. Rickie, Enterprise Library released! http://www.cnblogs.com/rickie/archive/2005/01/29/99106.html
?
轉載于:https://www.cnblogs.com/rickie/archive/2005/02/11/103772.html
總結
以上是生活随笔為你收集整理的Enterprise Library: Configuration Application Block类设计分析篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WEB页面多语言支持解决方案(转自CSD
- 下一篇: 经理人必看三部电影