笔记-NopCommerce系统架构分析-引擎和依赖管理IOC

本文详细介绍了NopCommerce框架中的NopEngine如何实现低耦合,作为IOC的管理者,通过依赖查找和注册接口实现控制反转。EngineContext、IDependencyRegistrar和ContainerManager等关键对象协同工作,确保组件的初始化和依赖注入。此外,文章还提及了NopCommerce的系统启动流程,包括依赖注册、Autofac集成以及WebAPI的依赖解析配置。
摘要由CSDN通过智能技术生成

Nop引擎是为了将整个框架的核心与业务逻辑进行低耦合而设计的单实例对象。

Nop引擎是IOC的管理者,主要将IOC的依赖查找和依赖注册简化,将内部功能封装在Nop引擎中,只对外开放依赖查找功能,在框架中提供依赖注册接口,实现IOC的注册和查找分离,方便使用。

主要对象

IEngine                           引擎接口,定义引擎的功能(组件和插件初始化、包装后的IOC容器、依赖查找)

NopEngine                    实现IEngine,实现了AutofacIoc组件实现控制反转。

EngineContext              引擎环境,Nop引擎的初始化工作和用于向外部开放Nop引擎的单实例访问。



NopIOC的依赖查找封装起来,并把依赖注册的抽象化(定义注册接口)

主要对象

IDependencyRegistrar                       依赖注册接口(抽象化依赖注册)

ContainerManager                              IOC容器管理器(封装IOC容器,提供组件注册和依赖查找)

ContainerConfigurer                           IOC容器配置器(Nop框架初始IOC组件注册)

AutofacRequestLifetimeHttpModule    创建ILifetimeScopeILifetimeScopeIOC依赖查找的关键对象

ComponentLifeStyle                          组件生命周期(临时、单例、终生周期)

业务流程

系统启动

EngineContext初始化

NopEngine初始化

ContianerConfigurer初始化

IOC注册NopConfigNopEngineContianerConfigurer实例。

IOC注册TypeFinder实例

通过TypeFinder对找系统中所有的依赖注册(IDependencyRegistrar),并注册到IOC中。

启动任务初始化

AutoMap映射

EF数据库设置验证

Nop基础数据初始化

DependencyResolver设置(服务和依赖解析方法)

 

附:IocWebApi

1、需通过Nuget安装Autofac.WebApi2包,后自动引用Autofac.Integration.WebApi程序集

2、注册Api依赖关系解析程序(GlobalConfiguration.Configuration.DependencyResolver

3、注册ApiControllersIHttpController)程序集。


另附:

几年前自己写了一个Autofac.Engine,应用比较简单。可以应用于 Web.和WebApi,而且源码不依赖 System.Net.Http等资源。已经在自己写的框架里应用了好几年。现在稳定运行10+个项目,提供大家参考,点评:

https://www.nuget.org/packages/Autofac.Engine/

http://git.oschina.net/Lycan80/Autofac.Engine

老早就想做一个开源的项目管理系统,正在筹划中吧(前端达不到自己理想的效果,在努力)。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值