orchard 阅读笔记 ——— IOC

     准备用Ochard来做二次开发,下载了1.6版本,发现代码写的非常好。我眼中的非常好是浏览一遍发现什么都不懂,渐渐的深入去看,发现代码逻辑性

很强。框架结构清晰。不像我所接触的工作中的项目,浏览一遍好像了解的差不多了,越深入越觉得杂乱无章。牢骚过后,进入正题。

    orchard cms 使用 Autofac框架作为IOC framework. 关于Autofact以及IOC的知识这里不描述。

     先看代码:

       

 private static IOrchardHost HostInitialization( HttpApplication application )
        {
            var host = OrchardStarter.CreateHost( MvcSingletons );

            host.Initialize();

            // initialize shells to speed up the first dynamic query
            host.BeginRequest();
            host.EndRequest();

            return host;
        }

        static void MvcSingletons( ContainerBuilder builder ){
            builder.Register( ctx => RouteTable.Routes ).SingleInstance();
            builder.Register( ctx => ModelBinders.Binders ).SingleInstance();
            builder.Register( ctx => ViewEngines.Engines ).SingleInstance();
        }

在global.cs中,Orchard首先建立了一个IOC容器。F12后你会看到

 

 

posted on 2013-07-17 23:02  而立未立  阅读(238)  评论(0)    收藏  举报