【转】ABP源码分析四十三:ZERO的本地化

ABP Zero模块扩展了ABP基础框架中的本地化功能,实现了通过数据库对本地化功能进行管理。其通过数据库保存本地化语言及其资源。

 

ApplicationLanguage:代表本地化语言的实体类。一种语言就是一个ApplicationLanguage实例。

 

ApplicationLanguageProvider:实现了ILanguageProvider接口,通过IApplicationLanguageManager实例设置DefaultLanguage和获取应用所配置的Language的列表。

 

ApplicationLanguageManager/IApplicationLanguageManager:通过IRepository<ApplicationLanguage>实例完成ApplicationLanguage实体的CRUD操作。同时实现ApplicationLanguage实体的更改事件,具体就是当ApplicationLanguage实体状态变化时,将对应的ApplicationLanguage实体从缓存中移除。 

 


 

ApplicationLanguageText:代表数据库中的本地化资源的实体类。在ABP 基础框架中,是用资源文件保存本地化资源的,但是Zero中使用数据库保存本地化资源。

 

ApplicationLanguageTextManager/IApplicationLanguageTextManager: 通过IRepository<ApplicationLanguageText, long>实例完成ApplicationLanguageText实体的CRUD操作。

 


关于ILocalizationSource,ILocalizationDictionary和ILocalizationDictionaryProvider的定义和用法参见ABP核心框架中的本地化模块。ABP.Zero中重新实现了这三个接口,以完成从数据库中读取资源。如果明白了ABP核心框架中的本地化模块的用法,下面几个对象是很容易理解的。

IMultiTenantLocalizationSource : 扩展了ABP中的ILocalizationSource接口。重载了GetString和GetStringOrNull以提供根据tenant信息返回本地化字符串的方法。

MultiTenantLocalizationSource:实现了IMultiTenantLocalizationSource 接口。通过MultiTenantLocalizationDictionaryProvider实例完成本地化资源的读取。

 

IMultiTenantLocalizationDictionary : 扩展了ABP核心框架中的ILocalizationDictionary,重载了GetOrNull和GetAllStrings以提供根据tenant信息返回本地化字符串的方法。

MultiTenantLocalizationDictionary:实现了IMultiTenantLocalizationDictionary接口,通过IRepository<ApplicationLanguageText, long> 实例从数据库读取与指定tenant相关的本地化资源。并且通过ICacheManager实例缓存本地化资源

 

MultiTenantLocalizationDictionaryProvider:实现了ILocalizationDictionaryProvider接口,通过MultiTenantLocalizationDictionary获取与指定tenant相关的本地化资源。

 

MultiTenantLocalizationDictionaryCacheHelper:提供了两个静态方法一个用于获取localization cache,另一个方法CalculateCacheKey用于生成CacheKey。一个cacheKey对应一个本地化资源(字典类型)。

MultiTenantLocalizationDictionaryCacheCleaner:将一个指定的本地化资源从缓存中删除。

 


ILanguageManagementConfig:提供EnableDbLocalization方法激活是否使用Database作为本地化资源的数据源

 

LanguageManagementConfig:实现了ILanguageManagementConfig接口中的EnableDbLocalization方法。具体就是将其他本地化Source从configuration中移除,替换为Database Source。

 

返回ABP源码分析系列文章目录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436521.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WinCE流设备驱动简介及GPIO驱动的实现

作者&#xff1a;ARM-WinCE 流设备驱动实际上就是导出标准的流接口函数的驱动&#xff0c;这是文档上面的定义。在WinCE中&#xff0c;所有的流设备都导出流设备接口&#xff0c;这样WinCE中的Device Manager可以加载和管理这些流设备驱动。 流设备驱动的架构如图&#xff1a;…

GridView数据导入Excel/Excel数据读入GridView

1 protectedvoidButton1_Click(objectsender, EventArgs e)2 {3 Export("application/ms-excel", "学生成绩报表.xls");4 }5 6 privatevoidExport(stringFileType, stringFileName)7 {8 Response.Charset "GB2312";9 Response.ContentEncodi…

计算机出现蓝屏怎么解决,电脑出现蓝屏故障0x00000019怎么办?

原标题&#xff1a;电脑出现蓝屏故障0x00000019怎么办&#xff1f;电脑开机出现蓝屏故障0x00000019怎么处理&#xff1f;电脑出现蓝屏&#xff0c;一般都会有提示错误代码或者出错的文件名等&#xff0c;最近就有用户跟小编反映&#xff0c;开机出现了蓝屏故障&#xff0c;提示…

画世界怎么用光影_怎么绘制光影?插画人物光感的塑造教程

怎么绘制光影&#xff1f;在角色氛围图里面他们的主要构成是&#xff1a;角色环境&#xff1b;打光色彩组成&#xff0c;有同学理解为角色场景结合起来&#xff0c;大概就是人和景组合构成。但我们过去都是的画都是只画角色&#xff0c;那么现在想营造氛围感&#xff0c;在画的…

【转】ABP源码分析四十五:ABP ZERO中的EntityFramework模块

AbpZeroDbContext&#xff1a;配置ABP.Zero中定义的entity的Dbset EntityFrameworkModelBuilderExtensions:给PrimitivePropertyConfiguration添加了扩展方法用于创建Index。 AbpZeroDbModelBuilderExtensions&#xff1a;给DbModelBuilder添加了扩展方法用于表的重命名。 AbpZ…

Enterprise Library系列文章回顾与总结

http://www.readygo.com.cn/NETFW/070216/Enterprise-Library-JiLiWenZhangHuiGuYuLongJi.htm 转载于:https://www.cnblogs.com/encounter/archive/2007/04/24/2188877.html

机载计算机结构,机载计算机

摘要 针对目前自动测试设备的通用性设计&#xff0c;提出了一种基于PXI总线的测试平台。文中对PXI测试系统、接口适配器和开关网络进行了说明&#xff1b;介绍了测试软件和故障诊断系统的设计&#xff1b;分析了该系统设计过程中面临的通用性、故障诊断与定位等问题。其设计思想…

WinCE中串口驱动及接口函数介绍

作者&#xff1a;ARM-WinCE 在WinCE中&#xff0c;串口驱动实际上就是一个流设备驱动,具体架构如图&#xff1a; 串口驱动本身分为MDD层和PDD层。MDD层对上层的Device Manager提供了标准的流设备驱动接口(COM_xxx)&#xff0c;PDD层实现了HWOBJ结构及结构中若干针对于串口硬件操…

广告牌定时器怎么设置时间_定时开关如何设置时间呢

定时开关如何设置时间呢创意家居 作者&#xff1a;fiorile 时间&#xff1a;2018-06-26 15:56:58 浏览量&#xff1a;7950 网民普遍认知程度&#xff1a;30% 来源&#xff1a;住范儿rita1982提出定时开关怎么设置时间呢的问题&#xff0c;小XHING重点说明微电脑如何调定时开关的…

【转】ABP源码分析四十六:ABP ZERO中的Ldap模块

通过AD作为用户认证的数据源。整个管理用户认证逻辑就在LdapAuthenticationSource类中实现。 LdapSettingProvider&#xff1a;定义LDAP的setting和提供DefautValue。主要提供配置访问AD数据库的账号信息。 LdapSettings/ILdapSettings:通过settingManager获取LDAP settings Ab…

广州.NET俱乐部 VSTS活动报道

首先要感谢广州.NET开发人员一直以来对俱乐部的支持&#xff0c;另外&#xff0c;要感谢微软鞠海洋提供的丰富礼品。本次活动主线是VSTS&#xff0c;俱乐部的讲师黎波为我们讲解了VSTS的基本组成和功能分布&#xff0c;让我们大家从宏观上了解VSTS。在活动上&#xff0c;微软的…

东北师范大学计算机学院的导师,东北师范大学计算机科学与信息技术学院研究生导师简介-王佳男...

东北师范大学计算机科学与信息技术学院研究生导师简介-王佳男东北师范大学 免费考研网/2016-04-15姓名王佳男职称高级工程师专业办公室电话**Emailwangjnnenu.edu.cn研究领域智能算法&#xff0c;计算机网络个人简介个人简历 教学工作科研教研论文/著作获奖情况资源链接信息修改…

WinCE文件目录定制及内存调整

作者&#xff1a;ARM-WinCE 这个说起来比较简单&#xff0c;WinCE的文件目录结构以及文件的位置都是在DAT文件中定义的。所有的dat文件会在WinCE编译时合并成initobj.dat文件&#xff0c;WinCE会根据DAT中的描述生成相应目录。 关于DAT的格式&#xff0c;可以参考我以前的一片…

plus 什么是mybais_谈谈自己用mybatis-plus中的一些经验。

软件&#xff1a;idea 然后用spring boot 数据库用的postgersql在谈mybatis-plus之前,我先说一个开发中非常好用的插件吧。用了这款插件之后,开发起来,会快很多。他就是 ----- > Mybatis plugins我这是安装好了的,没安装好之前是install,直接点就可以了。下面开始我们今天的…

【转】ABP源码分析四十七:ABP中的异常处理

ABP 中异常处理的思路是很清晰的。一共五种类型的异常类。 AbpInitializationException用于封装ABP初始化过程中出现的异常&#xff0c;只要抛出AbpInitializationException异常就可以&#xff0c;无须做额外处理。这类异常往往是需要维护人员介入分析的。 其他四个异常都在A…

游长江有感

游长江有感——代腾飞 2007年4月14日 于重庆独自乘舟游两江清风相伴影相随依船瞭望朝天门一艘巨轮泊江中两岸景色迷人离忽闻歌声伴耳中碧波荡漾三千里愁情烦事淡风中 转载于:https://www.cnblogs.com/daitengfei/archive/2007/04/27/729171.html

服务器维护 测试化验加工费,测试化验加工费.PPT

测试化验加工费.PPT四川师范大学科研处 预算填报的重要性 一、编报方法 二、各科目支出详解 三、课题预算编报中的常见问题 以省科技厅项目申报预算要求为例。其他类型科研项目根据相应管理办法&#xff0c;参照执行 主要内容 四、特殊情况及具体建议 编报方法——基本原则 目标…

当你累了,准备放弃时,看看这个吧!!!

在别的空间看到这篇文章&#xff0c;感觉说的很有道理&#xff0c;故转过来&#xff0c;送给所有还在坚持的朋友~~ 每个人都背负着一个沉重的十字架&#xff0c;在缓慢而艰难地朝着目的地前进。 途中&#xff0c;有一个人忽然停了下来。 他心想&#xff1a;这个十字架实在是…

mixin模式 python_Python中的mixin模式

转载注明&#xff0c;本文链接&#xff1a;http://www.bianbingdang.com/article_detail/167.html# MixIn和继承的关系面向对象三大特征&#xff0c;继承、封装、多态。第一次看到MixIn的时候&#xff0c;弄不懂这个和继承有什么关系/区别。首先&#xff0c;继承是父亲和儿子的…

梦游4k

本来还打算晚上看案例分析的&#xff0c; 觉得是在太困了就上床眯会儿&#xff0c; 一睁眼&#xff0c;呀&#xff0c;怎么就快九点了呢。 可怜我一晚上的宝贵时间就这么被我浪费过去了。 从床上蠕动到椅子上&#xff0c;努力扒开眼睛看看BBS&#xff0c; 还是跑步好啊。 跑步好…