nopCommerce开发者通过引擎定义把程序中所有的接口及其具体实现类、自定义中间件、组件、和插件等定义/实现的功能,集成到.NetCore框架内置依赖注入容器和管道中,使整基于.NetCore框架的程序整合成为一个有机的整体,并在程序执行时通过构造方法/IServiceProvider/反射方式获取这些定义中的具体实现类的实例,从而保证整合后的基于.NetCore框架程序能够正常的运行这些功能。
011 NopException、SecureRandomNumberGenerator、INopFileProvider、NopFileProvider、CommonHelper基础性支撑耦合
NopException类,该类继承于系统异常类的,并对系统异常类中相应实现方法进行自定义扩展,对异常信息以符合“nopCommerce”开发者所定义的格式进行显示。
SecureRandomNumberGenerator类,通过该类中的方法成员生成一个高质量、高安全性的随机数据值。
INopFileProvider接口,继承于该接口的具体实现类通过继承服务器端系统中的IO操作方法的基础上,自定义并扩展了一些IO操作方法用来对程序启动项中的目录/文件进行相应的操作,实际是通过该类所定义的方法,让后台管理者(角色)能够远程的通过客户端浏览器,对服务器程序启动项中的目录/文件进行读、写、删除和移动等操作。
NopFileProvider类,继承于INopFileProvider接口,该类通过继承服务器端系统中的IO操作方法的基础上,自定义并扩展了一些IO操作方法用来对程序启动项中的目录/文件进行相应的操作,实际是通过该类所定义的方法,让后台管理者(角色)能够远程的通过客户端浏览器,对服务器程序启动项中的目录/文件进行读、写、删除和移动等操作。
CommonHelper类,该类自定义实现了一些程序中能够被经常用到的通用和常用方法,这些方法包括:输入验证、生成随机数、不同类型间的数据转换、指定类属性成员实例赋值和日期计算等。
012 ITypeFinder、AppDomainTypeFinder、WebAppTypeFinder功能性支撑耦合
ITypeFinder接口,继承于该接口的具体实现类用于获取当前程序中所有的自定义具体实现类的类型实例,为通过反射方式获取具体实现类的实例提供支撑。
AppDomainTypeFinder类,继承于ITypeFinder接口,该类用于获取当前程序中所有的自定义具体实现类的类型实例,为通过反射方式获取具体实现类的实例提供支撑。
WebAppTypeFinder类,继承于AppDomainTypeFinder类,
该类通过父类中的应用程序域属性成员实例从指定的文件夹中(\bin\Debug\net5.0)的所有程序集实例动态加载到内存, 并从父类中的应用程序域属性成员实例中,获取当前程序中所有的自定义具体实现类的类型实例,为通过反射方式获取具体实现类的实例提供支撑。
013 INopStartup、IDependencyRegistrar、IOrderedMapperProfile、AutoMapperConfiguration、IStartupTask、TypeConverterRegistrationStartUpTask、GenericListTypeConverter<T>、GenericDictionaryTypeConverter<K, V>辅助功能性支撑耦合
INopStartup接口,继承于该接口的具体实现类,把具有某项特定功能的自定义依赖注入中间件和管道中间件,集成在.NetCore框架中,使用基于.NetCore框架的应用程序正常运行或拥有该有特定功能。
IDependencyRegistrar接口,继承于该接口的具体实现类,在基于.NetCore框架的应用程序中,把程序中自定义的接口及其相应的具体实现类,注入到.NetCore框架的内置依赖注入容器实例中,通过构造方法/IServiceProvider/反射方式获取具体实现类的实例化提供.NetCore框架支撑。
IOrderedMapperProfile接口,继承于该接口的具体实现类,通过“AutoMapper”实现两个类之间实例数据的传递(这里特指:把实体实例中的数据向视图实体实例中进行传递)。
AutoMapperConfiguration类,对该类中所有的属性成员进行初始化/实例化操作后,通过这些属性成员实例的相应方法,实现两个实体类实例之间的数据传递操作。
IStartupTask接口,继承于当前接口的所有的具体实现类,通过当前程序中自定义的类型转换类,把指定类中所有的整型成员的实例,添加到整型的列表实例/字典实例中。
TypeConverterRegistrationStartUpTask类,通过当前程序中自定义的数据转换类,把指定类中所有的整型成员的数据实例,添加到整型的列表实例/字典实例中。
GenericListTypeConverter<T>类,该类定义实现了两不同类型之间的数据相互转换操作,特别是指定类的数据与字符串类型的数据值之间的相互转换操作。
GenericDictionaryTypeConverter<K, V>类,该类定义实现了两不同类型之间数据的相互转换操作,特别是字典实例中的数据与字符串类型的数据值之间的相互转换操作。
014 NopInfrastructureDefaults、 IEngine、NopEngine、EngineContext集成/组合性基础性支撑耦合
NopInfrastructureDefaults类,该类用于获取启动项配置文件(web.config)的相对路径字符串(该类及其属性成员在整个程序中没有被任何的其它类所调用,所以该类及其配置静态文件“web.config”可以直接被删除)。
注意:
该类及其配置静态文件“web.config”可能直接从.Net Framework框架中迁移过来的,而.NetCore框架已经不再使用它们所以它们可以直接被删除,对程序的正常运行并无影响,但不知为什么nopCommerce开者还要重构配置静态文件“web.config”。
IEngine接口,继承于该接口的具体实现类,把当前程序中具有特定功能的自定义的中间件和接口及其具体实现类,添加到内置依赖注入容器实例和管道实例中,以保证当前程序在.NetCore框架中能拥有/正常运行这些功能或类的实例。
NopEngine类,继承于IEngine接口,把当前程序中具有特定功能的自定义的中间件和接口及其具体实现类,添加到内置依赖注入容器实例和管道实例中,以保证当前程序在.NetCore框架中能拥有/正常运行这些功能或类的实例。
EngineContext类,该类用于获取不受多线程操作影响的引擎接口单例实例。
对以上功能更为具体实现和注释见:21-11-07-003_Nop_4.40.4(.NetCore框架引擎集成、组装基础性耦合的支撑实现)。