通过Orchard认识的Autofac】的更多相关文章

反射Reflection 这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:'程序集(Assembly)'.'模块(Module)'.'类型(class)'组成,而反射提供一种编程的方式,让程序员可以在程序运行期获得这几个组成部分的相关信息. 类似于早绑定与晚绑定的关系,晚绑定损耗效率,但可以提高程序的利用性和灵活性,并且能够带来设计上的便利. 应用: 通过反射获取类型: type.GetInterface("ITest") Type.GetType("S…
 一.前言 第一次接触Autofac是因为CMS系统--Orchard,后来在一个开源爬虫系统--NCrawler中也碰到过,随着深入了解,我越发觉得Ioc容器是Web开发中必不可少的利器.那么,Ioc容器是用来做什么的?用了有什么好处?我相信如果不明白这两点就很难敞开心扉接受Ioc容器. 二.传统解耦设计的弊端 为方便描述,举个日志的栗子.我简化实现,一个Log类,一个SaveLog方法.如果其他类想拥有记日志功能,那么只需在内部包含一个Log类型的变量: public class Log {…
一.日志模块类图 1.ILogger接口及实现 2.ILoggerFactory接口及实现 3.其他 二.NullLogger类型     NullLogger类型是实现ILogger接口的空类型.它的 IsEnabled 方法总是返回false:Log 方法是个空实现.在代码中要用到日志的地方设计1个 NullLogger属性 作为占位符,在代码运行时将这个对象替换为真正的日志对象.如果不替换,则代码也能编译成功,运行时也不会出错. publicclassNullLogger:ILogger…
本文转自:http://www.cnblogs.com/hkncd/archive/2012/11/21/2780041.html Ioc容器Autofac系列(1)-- 初窥   前言 第一次接触Autofac是因为CMS系统--Orchard,后来在一个开源爬虫系统--NCrawler中也碰到过,随着深入了解,我越发觉得Ioc容器是Web开发中必不可少的利器.那么,Ioc容器是用来做什么的?用了有什么好处?我相信如果不明白这两点就很难敞开心扉接受Ioc容器. 传统解耦设计的弊端 为方便描述,…
继前篇,在Orchard Application_Start() -> HostInitialization() 里,调用 OrchardStarter.CreateHost创建IOrchardHost实例. 1: /// <summary> 2: /// OrchardHost Initialization. OrchardHost 初始化. 3: /// </summary> 4: private static IOrchardHost HostInitializatio…
Orchard一直是博主心中神一般的存在,由于水平比较菜,Orchard代码又比较复杂看了几次都不了了之了.这次下定决心要搞懂其工作原理,争取可以在自己的项目中有所应用.为了入门先到官网去学习一下相关的基础内容.看到这篇比较不错的入门文章,边学习边翻译一下.希望给有需要的朋友以帮助,也希望和对Orchard感兴趣的朋友一起交流. Orchard如何工作 构建一个Web内容管理系统不同于构建一个常规web应用:前者更像构建一个应用容器.设计一个这样的系统,可扩展性应该放在第一位.这可能是一个挑战因…
研发了Orchard一年左右了,时常遇到瓶颈,总觉得力不从心,其实并不是基础不够,关键还是概念性的东西太多,一会儿这个概念名词,一会那个,关于Orchard的技术文档也的确很少,每次看起来总是焦头烂额. 其实Orchard是一大堆开源项目的集合,他是用了一套体系融合了先进几乎所有先进的开源体系或者工具.如果想好好去探索Orchard,如下的开源项目可以先去了解一下,这样就遇到问题也可以有的放矢. <关于Orchard架构的介绍: http://www.cnblogs.com/xfuture/p/…
我之前的项目中使用了Orchard, 它依据依赖注入的思想而做的模块化让我深深为之着迷,这里开始宣传一下这个架构. 包含的概念非常之多,我现在也不甚了解.Orchard就是自己想控制它改变它的话需要非常对.net非常的了解. Orchard是一个以微软为主导的开源CMS项目,它允许使用者在Asp.Net平台上快速建立网站,并且提供扩展框架能够允许定制人员通过模块和主题 等增加额外的内容,Orchard能够建设出复杂的内容管理系统,它提供了强大的模块化建设模式,通过组件的重用将系统建设成本最小化,…
前言 Autofac Autofac是一套高效的依赖注入框架. Autofac官方网站:http://autofac.org/ Autofac在Github上的开源项目:https://github.com/autofac/Autofac Autofac安装:通过VS的Nuget可以很方便的获取. IoC/DI 关于IoC与DI的概念,网上有很多相关的博客,大家可以稍微了解一下,对比一下. 我个人的理解就是按照英文的中文翻译来理解的: IoC: Inversion of Control 控制反转…
概述 默认情况下,ASP.NET MVC内置的DefaultControllerFactory负责Controller实例的创建.Orchard定义了一个继承自DefaultControllerFactory类的Orchard.Mvc.OrchardControllerFactory类并在OrchardStarter类中进行注册:         // 以下代码来在Orchard.Environment.OrchardStarter类         ControllerBuilder.Curr…