[公告][重要]Senparc.Weixin v4.9.0 & Senparc.Weixin.MP v14.3.104更新说明

时间:2022-03-07 08:45:23

本次升级除了更新了发红包接口等接口之外,最重要的是重构了缓存模块。

如何升级?

之前的缓存是为Container设计的,原先的ContainerCacheStrategy继承自BaseCacheStragegy。这次更新之后,在ContainerCacheStrategy和BaseCacheStragegy中间加了一层ObjectCacheStrategy,用于处理所有Key为String类型的缓存(Value为Object类型)。

Sample中的代码已经进行了同步的修改。

所以如果您是在以前的版本上进行升级,必须要对代码做如下修改:

1、 ContainerCache缓存策略不再需要注册,改为对ObjectCache缓存策略的注册,例如:

原先的Container注册方法为(Redis为例):

CacheStrategyFactory.RegisterContainerCacheStrategy(() => RedisContainerCacheStrategy.Instance);//Redis

现在改为:

CacheStrategyFactory.RegisterObjectCacheStrategy(() => RedisObjectCacheStrategy.Instance);//Redis

注意:大部分的升级内容,只要编译一次就可以根据编译器报错找到修改的地方,但是上述lambda表达式中的 RedisObjectCacheStrategy ,即使保留原来的 RedisContainerCacheStrategy 也不会在编译时报错,所以需要格外注意!

2、CacheStrategyFactory.GetContainerCacheStrategyInstance()方法已经废除,现改为:

CacheStrategyFactory.GetObjectCacheStrategyInstance(); 返回的是ObjectCacheStrategy,不再是ContainerCacheStrategy

用法:

var objectCacheStrategy = CacheStrategyFactory.GetObjectCacheStrategyInstance();

现在的ContainerCacheStrategy实例可以从objectCacheStrategy .ContainerCacheStrategy获得,例如:

原先的containerCacheStrategy获取方法为:

CacheStrategyFactory.GetContainerCacheStrategyInstance()
现在改为:
CacheStrategyFactory.GetObjectCacheStrategyInstance().ContainerCacheStrategy

升级说明

本次更新之后看似某些部分缓存初始化的代码会更长一些(多数存在于SDK内部,开发者不会感觉到,所有的接口调用方法没有任何改变),但是对于SDK的扩展能力来说是一个新的里程碑:以前缓存策略专为Container设计(或者说Container优先),而目前的缓存策略已经可以支持几乎所有的缓存类型!这次升级为接下来SDK更多的功能升级提供了强有力的底层保证,尤其下一步包括小程序在内的实时互动开发提前奠定基础。