使用Redis内存数据库与“nopCommerce”程序进行缓存数据交互,则需要先在程序启动项的指定配置文件中,定义和获取关于Redis内存数据库的配置信息,下面从第本章将按照自顶向下的开发模式来解释,“nopCommerce4.3”程序是通过那些定义来实现,Redis内存数据库的配置信息的定义和获取操作的。
(1)、在启动项的appsettings.json文件中添加关于Redis内存数据库配置信息的定义。
0032、NopConfig
(2)、NopConfig类的主要作用是把程序中配置文件(*.json,这里特指:appsettings.json)中的数据,存储到该类所定义的属性中,以供程序执行作为相应的参数实例使用,当前为了简化实现逻辑和具体实现,删除了大部分的属性定义,只保留了与Redis内存数据相关的属性定义。
appsettings.json文件是.NetCore框架定义和获取配置信息的默认配置文件,从该件中获取取配置信息,属于.NetCore框架的基本和核心功能,而NopConfig类用于把从appsettings.json文件中获取的Redis内存数据相关的配置信息,存储到NopConfig实例的指定属性中。因此NopConfig类是整个“nopCommerce”程序的一个基本和核心类的定义,所以前面的整个示例程序必须进行重构以支持NopConfig实例。
(3)、重构Nop.Web.Startup类。
(4)、重构Nop.Web.Framework.Infrastructure.Extensions.ServiceCollectionExtensions类。
1、重构ConfigureApplicationServices方法。
2、添加ConfigureStartupConfig方法。
(5)、重构Nop.Web.Framework.Infrastructure.DependencyRegistrar.Register方法。
(6)、重构Nop.Web.Framework.Infrastructure.NopMvcStartup类。
(7)、重构Nop.Web.Framework.Infrastructure.NopDbStartup类。
(8)、重构Nop.Core.Infrastructure.NopEngine类。
1、重构ConfigureServices方法。
2、重构RegisterDependencies方法。
(9)、在语句var nopConfig = services.ConfigureStartupConfig<NopConfig>(configuration.GetSection("Nop"));设置断点,按F5执行程序后,可以很直接的看出nopConfig实例从“appsettings.json”文件中获节点(键)“Nop”的所有配置信息。
对以上功能更为具体实现和注释见21-06-23_Nop4.4(018_添加NopConfig类定义,重构整个程序实现)。