请注意,本站并不支持低于IE8的浏览器,为了获得最佳效果,请下载最新的浏览器,推荐下载 Chrome浏览器
欢迎光临。交流群:166852192

Orchard源码分析(4):Orchard.Environment.OrchardStarter类




概述
OrchardStarter类是个静态类,主要作用是配置Autofac容器以及创建IOrchardHost(DefaultOrchardHost)对象,分别对应CreateHost和CreateHostContainer这两个静态方法。


一、CreateHost方法
CreateHost方法接受一个委托参数,返回一个IOrchardHost(Orchard宿主)型实例:
    public static IOrchardHost CreateHost( Action<ContainerBuilder > registrations)
该方法在Orchard的MvcHttpApplication类的HostInitialization方法中得以调用。方法实参为MvcApplication类的私有静态方法MvcSingletons。具体调用链如下:


方法内部首先调用CreateHostContainer方法获取一个IContainer容器,然后从容器中解析(Resolve)出一个IOrchardHost对象并返回。
二、CreateHostContainer方法
CreateHostContainer方法接受一个委托参数,返回一个Autofac的IContainer型的IoC/DI容器对象:
    public static IContainer CreateHostContainer( Action<ContainerBuilder > registrations)


该方法将一系列的实例或类型在容器中进行注册。
接下来会用一个子系列的来深入该方法内部进行分析,并以此为契机发散开来分析Orchard的一些运行机制。首先得对一些知识有所储备,熟悉Autofac必须的,其次对Castle.DynamicProxy2、log4net、NHibernate(FluentNHibernate)也要有一点了解。
相关类型:
Orchard.WarmupStarter.Starter<T>
Orchard.Environment.OrchardStarter
Orchard.Environment.DefaultOrchardHost :IOrchartHost
Orchard.Web.MvcApplication


参考资料:
Autofac



作者原创内容不容易,如果觉得内容不错,请点击右侧“打赏”,赏俩给作者花花,也算是对作者付出的肯定,也可以鼓励作者原创更多更好内容。
更多详情欢迎到QQ群 166852192 交流。