e通网网站建设,wordpress nikkon,wordpress增强型短代码,网站容易被百度收录本文是ABP核心项目源码分析的最后一篇#xff0c;介绍一些前面遗漏的功能
AbpSession
AbpSession: 目前这个和CLR的Session没有什么直接的联系。当然可以自定义的去实现IAbpSession使之与CLR的Session关联
IAbpSession#xff1a;定义如下图中的四个属性。
NullAbpSessio…本文是ABP核心项目源码分析的最后一篇介绍一些前面遗漏的功能
AbpSession
AbpSession: 目前这个和CLR的Session没有什么直接的联系。当然可以自定义的去实现IAbpSession使之与CLR的Session关联
IAbpSession定义如下图中的四个属性。
NullAbpSessionIAbpSession的一个缺省实现给每个属性都给予null值无实际作用
ClaimsAbpSession实现了从ClaimsPrincipal/ClaimsIdentity中获取相应的claims,来完成IAbpSession中定义的属性的赋值。如果我们没有将自定义的IAbpSession实现register到ABP容器中的话ABPkernelmodule会把ClaimsAbpSession注入到容器中。 Text
该模块就一个功能实现string.format的反操作。比如一个字符串My name is Neo. 和一个格式化器My name is {name}.。 该模块通过FormattedStringValueExtracter的Extract方法可以将Neo提取出来。
核心的逻辑在两个方法中
第一个FormatStringTokenizer的Tokenize方法这个方法将格式化器转换为一个ListFormatStringToken 。以My name is {name}.为例就是转化为{(TextMy name is,TypeConstantText),(Textname,TypeDynamicValue)}
第二个FormattedStringValueExtracter的Extract方法,使用上面得到的ListFormatStringToken去匹配str然后将结果存到ExtractResult中 Reflection
IAssemblyFinder: 定义一个接口返回所有的assemblies CurrentDomainAssemblyFinder, 返回当前appdomain中的assemblies WebAssemblyFinder返回web应用程序的bin目录下的assemblies ITypeFinder/TypeFinder:从所有的assemblies中找出需要的type ReflectionHelper封装了三个方法 返回ABP源码分析系列文章目录