一.响应配置变更通知:
Configuration Application Block提供了一个事件机制,当存储的配置变更时通知应用程序 ,使用步骤:
1)创建一个EverntHandler
1/**//// <summary>
2 /// 创建EventHanler
3 /// </summary>
4 /// <param name="sender"></param>
5 /// <param name="args"></param>
6 private void OnConfigurationChanged(object sender, ConfigurationChangedEventArgs args)
7 {
8 Cursor = System.Windows.Forms.Cursors.WaitCursor;
9
10 EditorFontData configData = ConfigurationManager.GetConfiguration("EditorSettings") as EditorFontData;
11
12 StringBuilder results = new StringBuilder();
13 results.Append("Configuration changes in storage were detected. Updating configuration.");
14 results.Append(Environment.NewLine);
15 results.Append("New configuration settings:");
16 results.Append(Environment.NewLine);
17 results.Append('\t');
18 results.Append(configData.ToString());
19 results.Append(Environment.NewLine);
20
21 Cursor = System.Windows.Forms.Cursors.Arrow;
22 }
2)注册事件
1/**////注册事件
2 ConfigurationManager.ConfigurationChanged += new ConfigurationChangedEventHandler(OnConfigurationChanged);
二.配置数据的缓存:
Configuration Application Block在设计时提供了对配置数据的缓存,在读取XML数据后,再次读取它首先会判断缓存是否为空,如果不为空,它会直接从缓存中读取数据(在剖析篇中会有详细的介绍)。
显式的清除掉缓存用下面这句代码即可:
1/**////清除缓存数据
2 ConfigurationManager.ClearSingletonSectionCache();
三.面向高级人员的扩展机制:
1. 除了用XML文件可以存储数据外,还可以创建自己的存储方式,像SQL Server Database,注册表存储等,这时就需要我们自己创建StorageProvider。创建自定义的Storage Provider,需要注意以下几点:
1)要读取和写入数据,需要继承于StorageProvider类和分别实现IStorageProviderReader和IstorageProviderWriter接口:
1public class XmlFileStorageProvider : StorageProvider, IStorageProviderWriter
2 {
3 //……
4 }