第22章 语言服务、Web工作上下文定义实现
作者:互联网
0074 LocalizationSettings、NopLocalizationDefaults
LocalizationSettingsk类,
通过该实体类及其属性成员实现当前程序与数据库中设置表(Setting)和本地化资源表(LocaleStringResource)之间的数据交互操作。
NopLocalizationDefaults类,通过该类所定义的常量字符串,为当前程序中的通用操作的实现提供相应的数据值。
0075 ILanguageService、LanguageService
LanguageService类,继承于ILanguageService接口,通过该类中的定义实现了页面、程序和数据库指定表之间语言相关数据信息的交互操作。
0074 LocalizationSettings、NopLocalizationDefaults
LocalizationSettingsk类,
通过该实体类及其属性成员实现当前程序与数据库中设置表(Setting)和本地化资源表(LocaleStringResource)之间的数据交互操作。
NopLocalizationDefaults类,通过该类所定义的常量字符串,为当前程序中的通用操作的实现提供相应的数据值。
0075 ILanguageService、LanguageService
LanguageService类,继承于ILanguageService接口,通过该类中的定义实现了页面、程序和数据库指定表之间语言相关数据信息的交互操作。
1、重构Nop.Services.Installation.InstallationService.InstallSettingsAsync方法,把本地化默认设置数据持久化到设置表中。
0076 NopRequestCultureProvider
NopRequestCultureProvider类,通过该类中获取获取一个指定的本地化结果提供者实例,为客户端浏览器是信息的本地化显示提供支撑。
2、定义Nop.Web.Framework.Infrastructure.Extensions.ApplicationBuilderExtensions.UseNopRequestLocalization方法。
- 重构Nop.Web.Framework.Infrastructure.NopCommonStartup.Configure方法添加语句:
//加载自定义本地化中间件管道方法。
application.UseNopRequestLocalization();
0077 IWorkContext、WebWorkContext
WebWorkContext类,继承于IWorkContext,通过该类中获取正在使用当前网站程序的用户。
注意:
1、为了简化实现,注释掉和删除了WebWorkContext类及其IWorkContext接口中的一些定义实现。
2、nopCommerce开发者把WebWorkContext类作为整个nopCommerce程序的耦合中枢。所以WebWorkContext类的定义实现并不复杂,但是该类通过耦合程序中的相应类为客户端浏览器中的内容信息进行本地化显示,同时它还将被程序绝大部分的其它类所耦合。所以该类被nopCommerce开发作为耦合中枢进行定义使用。即该类实现逻辑相对简单,但耦合逻辑的程度却十分复杂。
4、重构Nop.Core.Domain.Customers.Customer实体添加属性定义:
/// <summary>
/// 【已经注册的网店编号】
/// <remarks>
/// 摘要:
/// 获取/设置一个指定的已经注册的网店编号。
/// </remarks>
/// </summary>
public int RegisteredInStoreId { get; set; }
5、重构Nop.Core.Domain.Customers.NopCustomerDefaults类。
6、重构Nop.Services.Customers.NopCustomerServicesDefaults类。
7、重构Nop.Services.Customers.IcustomerService接口和Nop.Services.Customers.CustomerService类。
8、重构Nop.Web.Framework.Infrastructure.DependencyRegistrar.Register方法添加语句:
//通过.NetCore框架依赖注入容器实例的指定API方法,对Web工作上下文具体实现类进行依赖注入操作。
services.AddScoped<IWorkContext, WebWorkContext>();
//通过.NetCore框架依赖注入容器实例的指定API方法,对语言服务具体实现类进行依赖注入操作。
services.AddScoped<ILanguageService, LanguageService>();
9、按F5执行程序,把本地化类实例的默认数据值,自动持久化指定数据库的设置表中。
对以上功能更为具体实现和注释见:21-09-02_Nop_4.40.3(023_语言服务、Web工作上下定义实现,所有页面正常显示)。
标签:Web,定义,22,重构,本地化,该类,上下文,Nop 来源: https://blog.csdn.net/zhoujian_911/article/details/120384215