本文共 5365 字,大约阅读时间需要 17 分钟。
快速入门使用了一个顶层的处理程序来捕获任何场景中的任何异常。处理程序显示了一个带有异常信息的对话框。
快速入门在构建和运行应用程序之前不需要执行任何安装步骤。[注意:默认的快速入门配置不使用持久后端存储。]
快速入门提供两个版本。第一个版本使用工厂创建Enterprise Library 对象,例如使用CacheFactory.GetCacheManager 方法创建CacheManager 实例, 以及使用new操作符创建ProductData 实例。
第二个版本演示了集成Unity 应用程序块。创建和填充UnityContainer 实例是使用配置文件中<unity>配置节的数据。这会加载Enterprise Library 核心和缓存应用程序块扩展。在这个快速入门也使用UnityContainer的Resolve 方法创建Main Form实例,从而导致Unity创建和注入Main Form所需要的CacheManager 和ProductData 实例,他们是通过构造函数注入的。
构建并运行快速入门
快速入门以源代码的形式发布,这意味着在运行之前必须编译它,可以使用 Visual Studio 来构建快速入门。构建缓存快速入门漫游:添加条目到缓存中
漫游示范了如何添加条目到缓存中。
重建示例
1. 配置缓存。必要的步骤,请参见输入配置信息。
2. 在 QuickStartForm 类中为 CacheManager 对象声明一个成员变量。private ICacheManager primitivesCache;
3.在 QuickStart_Load 方法中,添加下列代码以创建 CacheManager 。对 GetCacheManager 的调用没有包含CacheManager 的名称,所以工厂创建了声明在配置文件中的默认 CacheManager 对象。
this.primitivesCache = CacheFactory.GetCacheManager();
4. 创建要添加到缓存中的条目。下列代码创建了一个 Product 类型的条目。
string id="ProductOneId";
string name = "ProductOneName"; int price = 50;Product product = new Product(id, name, price);
5. 添加条目到缓存中。下列代码使用了 Add 方法的一个重载,重载包含清理优先级(在此为2),条目在到期时不刷新的指令、从条目的最后访问时间开始的5分钟的到期时间。
primitivesCache.Add(product.ProductID, product, CacheItemPriority.Normal, null,
new SlidingTime(TimeSpan.FromMinutes(5)));漫游:从缓存中移除条目
此漫游示范了如何从缓存中移除条目。
重建此示例1. 配置缓存。必要的步骤,请参见缓存快速入门中的“快速入门配置”。
2. 在 QuickStartForm 类中为 CacheManager 对象声明一个成员变量。
private ICacheManager primitivesCache;
3. 在响应用户请求从缓存中移除条目的方法中,添加下列代码。
// Prompt the user for the key of the item to be removed.if (this.selectItemForm.ShowDialog() == DialogResult.OK){// Request that the item be removed from the cache.this.primitivesCache.Remove(selectItemForm.ItemKey);}
漫游:从缓存中获取条目
此漫游示范了如何从缓存中获取条目。
重建示例1. 配置缓存。必要步骤,请参见缓存快速入门中的“快速入门配置”。
2. 在 QuickStartForm 类中为 CacheManager 对象声明一个成员变量。
private ICacheManager primitivesCache;
3. 在响应用户请求从缓存中读取条目的方法中,添加下列代码。// Prompt the user for the key of the item to be read.if (this.selectItemForm.ShowDialog() == DialogResult.OK){// Read the item from the cache. If the item is not found in the cache, the// return value will be null.Product product = (Product) this.primitivesCache.GetData(selectItemForm.ItemKey);}
漫游:清除缓存
此漫游示范了如何清除缓存,清空缓存中的所有数据。
重建此示例1. 配置缓存。必要步骤,请参见缓存快速入门中的“快速入门配置”。
2. 在 QuickStartForm 类中为 CacheManager 对象声明一个成员变量。
private ICacheManager primitivesCache;
3. 在响应用户请求清空缓存的方法中,添加下列代码。
this.primitivesCache.Flush();
漫游:加载缓存
快速入门的此节说明了如何主动加载缓存和如何被动加载缓存。
解决方案概述 图 1 说明了快速入门如何从缓存中获取数据。图 1 说明了如何几点:
1. 配置缓存,定义名为 Loading Scenario Cache Manager 的 CacheManager 的对象。对于必要的步骤,请参见中“快速入门的配置”。
2. 在 ProductData 类中定义用于 CacheManager 对象的成员变量。
private ICacheManager cache;
3. 通过添加下列代码来创建 CacheManager 对象。工厂使用在配置文件中的名称来创建 CacheManager 对象。
cache = CacheFactory.GetCacheManager("Loading Scenario Cache Manager");
4. 从 XML 文件中加载完整的数据集到缓存中。
List<Product> list = this.dataProvider.GetProductList();
for (int i = 0; i < list.Count; i++) { Product product = list; cache.Add(product.ProductID, product); }被动加载缓存
可以被动的缓存数据以获取应用程序请求的数据,并缓存它以备以后的请求使用。被动加载缓存1. 配置缓存,定义名为 Loading Scenario Cache Manager 的 CacheManager 的对象。对于必要的步骤,请参见缓存快速入门中“快速入门的配置”。
2. 在 ProductData 类中定义用于 CacheManager 对象的成员变量。
private ICacheManager cache;
3. 通过添加下列代码来创建 CacheManager 对象。工厂使用在配置文件中的名称来创建 CacheManager 对象。
cache = CacheFactory.GetCacheManager("Loading Scenario Cache Manager");
4. 添加下列在请求以获取 Product 时将执行的代码。
Product product = (Product)cache.GetData(productID);// Does our cache already have the requested object?if (product == null){// Requested object is not cached; therefore, retrieve it from// the data provider and cache it for more requests.product = this.dataProvider.GetProductByID(productID);if (product != null){cache.Add(productID, product);}}return product;
缓存与主数据源的比较
要查看在缓存中的数据与主数据源中的数据有什么不同,单击 Edit Master Data 按钮,然后修改 XML 文件中的某些值。如果在主数据修改之前条目已经在缓存中,并在修改后从缓存中获取它,从缓存中获取的数据将与主数据源中的数据不匹配。本文来自云栖社区合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号
转载地址:http://ombza.baihongyu.com/