好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Configuration类设计分析

[Enterprise Library]Configuration类设计分析


Enterprise Library: Configuration Application Block 类设计分析篇

 

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

查看更多关于Configuration类设计分析的详细内容...

  阅读:41次

上一篇: 教训

下一篇:whenever的一些用法示例command

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网
[ SiteMap ]