7.2 [Enterprise Library]用缓存应用程序块开发应用程序

本文是Enterprise Library 3.1 帮助文档中文翻译 的一部分。

本节描述了如何使用缓存应用程序块来开发应用程序。首先,它解释了如何配置应用程序块,将它加入到解决方案中,并选择一个后端存储;然后,在关键场景中,它描述了如何在特定场景中使用应用程序块,如添加条目到缓存和从缓存中移除条目。

所有应用程序块都以源代码形式提供(Ship??),因此在使用快速入门和配置工具前必须编译它们。要学习如何编译 Enterprise Library 源代码,请参见构建 Enterprise Library 。

输入配置信息

这些过程解释了如何配置缓存应用程序块。与节点相关的属性显示在右边的面板中。如果要使用数据访问应用程序块做为后端存储,在配置缓存应用程序块之前就必须配置该应用程序块。

添加应用程序块

  1. 打开配置文件,更多信息,请参见配置应用程序块。

  2. 右单击 Application Configuration,指向 New ,然后单击 CachingApplicationBlock

  3. 配置控制台自动添加带有默认设置的 CacheManager 节点。

配置缓存管理器( Cache Manager )

  1. 单击 Caching Application Block 节点。

  2. (可选)修改 DefaultCacheManager 属性名。如果代码没有指定特定的缓存管理器的话,将使用默认的缓存管理器。输入一个新的名称或者从下拉列表中选择一个。默认的名称是 CacheManager

  3. 单击 CacheManager 节点(如果已重命名了缓存管理器,节点将拥有了赋予的名称)。

  4. (可选)设置 ExpirationPollFrequencyInSeconds 属性。这是定时器控制后台调度程序多久检查过期的条目的频率。单位是秒,最少时间为1秒,默认为60秒。

  5. 设置 MaximumElementsInCacheBeforeScavenging 属性。这是清除前可以缓存的最大元素数量。默认设置为1000元素。

  6. ( 可选 )重命名 CacheManager 节点。默认名称是 CacheManager

  7. 设置 NumberToRemoveWhenScavenging 属性。这是在清除开始后移除的元素数量,默认设置为10元素。

默认情况下,缓存存储条目仅在内存中,并赋予后端存储的值为 NullBackingStore 。可以配置缓存应用程序块使用数据库缓存存储、独立存储或者定制的存储。数据库缓存存储使用数据访问应用程序块。

为数据库缓存存储配置缓存应用程序块

  1. 右单击 CacheManager (或者重命名后的缓存管理器名称),指向 New ,然后单击 DatabaseCacheStorage

  2. 配置控制台自动添加数据访问应用程序块。关于配置数据访问应用程序块的信息,请参见数据访问应用程序块的文档。

  3. 单击 DataCacheStorage 节点。

  4. 设置 DatabaseInstance 属性。这是数据库连接字符串的名称,它必须与数据访问应用程序块配置中的某个连接字符串的名称对应。可以输入名称或者从下拉列表中选择它。

  5. ( 可选 ) 用重命名 DataCacheStorage 节点来设置 Name 属性。

  6. 设置 PartitionName 属性。这标识了缓存管理器将使用的数据库部分。

为独立存储配置缓存应用程序块

  1. 右单击 CacheManager (或者重命名后的缓存管理器名称),指向 New ,然后单击 Isolated Storage

  2. 如果要加密保存在独立存储中的信息,右单击Isolated Storage ,指向 New ,并单击 Symmetric Storage Encryption 。配置控制台自动添加加密应用程序块。关于配置加密应用程序块的更多信息,请参见加密应用程序块的文档。

  3. (可选) 重命名 IsolatedStorage 节点来设置Name 属性。

  4. 设置 PartitionName 属性。这标识了缓存管理器将使用的独立存储的区域。

为定制缓存存储配置缓存应用程序块

  1. 右单击 CacheManager (或者重命名后的缓存管理器名称),指向 New ,然后单击 Custom CacheStorage

  2. 在右面板的 Attributes 属性节中,单击省略号按钮(...)。

  3. EditableKeyValueCollectionEditor 对话框中,单击 Add 添加一个新的名称/值对。

  4. EditableKeyValueCollectionEditor对话框的右面板中,输入键名称和属性的值。

  5. 适当的添加更多的名称/值对,然后单击 OK

  6. ( 可选) 在放置在配置控制台的右面板中的 Name 属性节中,修改定制缓存存储的名称。默认的名称是 CacheStorage

  7. 在右面板的 Type 属性节中,单击省略号按钮。如果需要的类型没有包含在程序集文件夹中,单击 TypeSelector 上的 LoadAssembly 来查找包含需要的类型的程序集。

如果要添加另一个缓存、管理器的实例,右单击 CacheManagers 节点,指向 New ,然后单击 CacheManager ,重复前面的步骤。在这只能有一个默认的缓存管理器,每个缓存管理器都必须有唯一的名称。

使用提示

缓存应用程序块的配置设置将影响应用程序的缓存使用模式和它的系统环境,如可用的内存数量。例如,如果应用程序添加了一个比在清除时(这是一个配置设置)移除的缓存的比例大得多的条目到缓存中,缓存将持续增长。随着时间的推移,这将导致内存不足。使用应用程序块的性能计数器来协助为每个应用程序调整配置设置。

用于缓存应用程序块的源模式

本主题列出了用于配置缓存应用程序块的 XML 元素和属性。可以手工编辑 XML 数据,但 Enterprise Library 配置控制台极大的简化了这个任务。如果选择手工编辑 XML ,所使用的模式信息就包含在了本主题中。

配置文件包含下列节处理程序声明。

<configSections>
<section name="cachingConfiguration"
type="Microsoft.Practices.EnterpriseLibrary.Caching.Configuration.CacheManagerSettings,
Microsoft.Practices.EnterpriseLibrary.Caching, Version=3.1.0.0,
Culture=neutral, PublicKeyToken=null" />
</configSections>

节处理程序声明包含配置设置节的名称和处理配置节中配置数据的节处理程序类的名称。配置设置节的名称是 cachingConfiguration,节处理程序类的名称是 Microsoft.Practices.EnterpriseLibrary.Caching.Configuration.CacheManagerSettings

cachingConfiguration 元素

cachingConfiguration 元素指定了缓存应用程序块的配置,此元素是必须的。

属性和子元素

下列章节将描述 cachingConfiguration 元素的属性和子元素。

属性

表7.1列出了 cachingConfiguration 元素的属性。

表 7.1. cachingConfiguration 的属性

属性描述
defaultCacheManager 如果应用程序代码没有在创建缓存管理器时为 CacheFactory 提供缓存管理器的命名实例,缓存应用程序块将使用此缓存管理器。此属性是必须的。

encryptionProviders 元素

encryptionProviders 元素是 cachingConfiguration 元素的一个子元素。encryptionProvider 元素列出了后端存储使用的加密提供程序。此元素是可选的。

add 子元素

add 元素是 encryptionProviders 元素的一个子元素。add 元素添加加密提供程序的名称。此元素是可选的,可以有多个 add 元素。

属性

表7.2列出了 add 元素的属性。

表 7.2. add 的属性

属性描述
name 加密提供程序的名称。名称在节中必须是唯一的,此属性是必须的。
type 实现了 IStorageEncryptionProvider 接口的类的名称。此属性是必须的。

backingStores 元素

backingStores 元素是 cachingConfiguration 元素的一个子元素。backingStores 元素列出了缓存管理器可以使用的后端存储。如果在配置时没有指定后端存储,配置控制台台将使用内存内后端存储。此元素是必须的。

add 子元素

add 元素是 backingStores 元素的一个子元素。 add 元素添加后端存储的名称。此元素是必须的,可以有多个 add 元素。

属性

表7.3 列出了 add 元素的属性。

表 7.3. add 的属性

属性描述
name 后端存储的名称。此属性是必须的。
type 继承自 BaseBackingStore 类的类的类型名称。此属性是必须的。
encryptionProviderName 加密提供程序的名称,名称在节中必须是唯一的。此属性是可选的。
partitionName 如果使用的是数据缓存存储,此属性标识了缓存管理器将使用的数据库部分。如果使用的是独立存储,它标识的是缓存管理器将使用的独立存储的区域。此属性是必须的。
databaseInstanceName 数据库实例的名称。对于数据库后端存储而言,此属性是必要的。

cacheManagers 元素

cacheManagers 元素是 cachingConfiguration 元素的一个子元素。cacheManagers 元素列出了缓存管理器。缓存管理器表示了在应用程序中被使用的缓存的实例。此元素是必要的。

add 子元素

add 元素是 cacheManagers 元素的一个子元素。add 元素添加缓存管理器的名称。此元素是可选的,可以多个 add 元素。

属性

表7.4列出了 add 元素的属性。

表 7.4. add 的属性

属性描述
name 缓存管理器的名称,名称在节中必须唯一。此属性是必要的。
expirationPollFrequencyInSeconds 设置控制后台调度程序多久检查过期条目的定时器。此属性必须是正整数,且是必要的。
maximumElementsInCacheBeforeScavenging 设置在清除开始前可以在缓存中的条目的最大数量。此属性必须是正整数,且是必要的。
numberToRemoveWhenScavenging 设置在清除开始时移除的条目的数量,此属性必须是正整数,且是必要的。
backingStoreName 此属性是必要的。
posted @ 2007-10-24 23:45  Dorian Deng  阅读(1240)  评论(0编辑  收藏  举报