public void AutoScanDomainCacheStrategyTest() { Config.IsDebug = true; { Console.WriteLine("全局自动扫描"); var addedTypes = CacheStrategyDomainWarehouse.AutoScanDomainCacheStrategy(true, null); addedTypes.ForEach(z => Console.WriteLine(z)); Assert.IsTrue(addedTypes.Count > 0); Assert.IsTrue(addedTypes.Contains(typeof(TestExtensionCacheStrategy))); //自动扫描程序集:81个,注册总用时:205.7718ms - 598.7549ms } { Console.WriteLine("不自动扫描");// var addedTypes = CacheStrategyDomainWarehouse.AutoScanDomainCacheStrategy(false, null); addedTypes.ForEach(z => Console.WriteLine(z)); Assert.IsTrue(addedTypes.Count == 0); //注册总用时:0.0021ms } { Console.WriteLine("手动指定"); Func <IList <IDomainExtensionCacheStrategy> > func = () => { var list = new List <IDomainExtensionCacheStrategy>(); list.Add(TestExtensionCacheStrategy.Instance); return(list); }; var addedTypes = CacheStrategyDomainWarehouse.AutoScanDomainCacheStrategy(false, func); addedTypes.ForEach(z => Console.WriteLine(z)); Assert.IsTrue(addedTypes.Count > 0); Assert.IsTrue(addedTypes.Contains(typeof(TestExtensionCacheStrategy))); //注册总用时:0.574ms } }
/// <summary> /// 开始 Senparc.CO2NET 初始化参数流程 /// </summary> /// <param name="registerService"></param> /// <param name="autoScanExtensionCacheStrategies">是否自动扫描全局的扩展缓存(会增加系统启动时间)</param> /// <param name="extensionCacheStrategiesFunc"><para>需要手动注册的扩展缓存策略</para> /// <para>(LocalContainerCacheStrategy、RedisContainerCacheStrategy、MemcacheContainerCacheStrategy已经自动注册),</para> /// <para>如果设置为 null(注意:不适委托返回 null,是整个委托参数为 null),则自动使用反射扫描所有可能存在的扩展缓存策略</para></param> /// <returns></returns> public static IRegisterService UseSenparcGlobal(this IRegisterService registerService, bool autoScanExtensionCacheStrategies = false, Func <IList <IDomainExtensionCacheStrategy> > extensionCacheStrategiesFunc = null) { //注册扩展缓存策略 CacheStrategyDomainWarehouse.AutoScanDomainCacheStrategy(autoScanExtensionCacheStrategies, extensionCacheStrategiesFunc); return(registerService); }
/// <summary> /// 开始YoYo Senparc.CO2NET SDK 初始化参数流程 /// /// (关于 UseYoYoSenparc() 的更多用法见 CO2NET Demo 中的 UseSenparcGlobal:https://github.com/Senparc/Senparc.CO2NET/blob/master/Sample/Senparc.CO2NET.Sample.netcore/Startup.cs) /// </summary> /// <param name="senparcSetting"></param> /// <param name="contentRootPath">提供网站根目录(env.ContentRootPath,env类型为IHostingEnvironment)</param> /// <param name="autoScanExtensionCacheStrategies">是否自动扫描全局的扩展缓存(会增加系统启动时间)</param> /// <param name="extensionCacheStrategiesFunc"> /// <para>需要手动注册的扩展缓存策略</para> /// <para>(LocalContainerCacheStrategy、RedisContainerCacheStrategy、MemcacheContainerCacheStrategy已经自动注册),</para> /// <para>如果设置为 null(注意:不是委托返回 null,是整个委托参数为 null),则自动使用反射扫描所有可能存在的扩展缓存策略</para> /// </param> /// <returns></returns> public static IRegisterService UseYoYoSenparcCO2NET( this SenparcSetting senparcSetting, string contentRootPath = "", bool autoScanExtensionCacheStrategies = false, Func <IList <IDomainExtensionCacheStrategy> > extensionCacheStrategiesFunc = null) { var registerService = YoyoAbpWechatRegisterService.Start(senparcSetting, contentRootPath); CacheStrategyDomainWarehouse.AutoScanDomainCacheStrategy(autoScanExtensionCacheStrategies, extensionCacheStrategiesFunc); return(registerService); }