代码改变世界

IOC神器Autofac

2012-05-25 10:09  午夜瞎想  阅读(3874)  评论(0编辑  收藏  举报

Nop的IOC注册整体顺序

 

在global的Application_Start()初始化引擎EngineContext.Initialize(false);根据配置文件启动引擎NopEngine,在NopEngine时候启动ContainerConfigurer配置容器进行IOC注册

 

在ContainerConfigurer中首先注册引擎和ITypeFinder。这个ITypeFinder可以全dll搜索实现某一个接口的所有类

第二部分就是找到所有实现了IDependencyRegistrar接口的类然后实现注册

这样也方便插件的动态加载

 

Nop.Core.Infrastructure.DependencyManagement.ContainerConfigurer麦库截图20121524154851844.jpg

 

 

大部分注册都在Nop.Web.Framework.DependencyRegistrar : IDependencyRegistrar类内

其中Setting的注册很有意思。

有大量接口为ISetting的类,利用Autofac进行批量注册麦库截图20121524154008570.jpg

虽然代码没有完全理解但是觉得这个功能很神奇