摘要:2006年1月份的企业库2.0,跟早先的版本相比,变化很大,具体的变化参考
About the January 2006 Releasehttp://msdn.microsoft.com/library/?url=/library/en-us/dnpag2/html/EntLib2.asp
其中一个瞩目的变化是个新的对象生成器(ObjectBuilder)子系统,位于Microsoft.Practices.ObjectBuilder命名空间之下。它源自于Composite UI Application Block,是个依赖注入(Dependency Injection)框架,而不是一个单纯的依赖注入容器。它主要的功用是负责创建和销毁对象实例。在企业库2.0中,ObjectBuilder被用来把配置数据注入到应用程序块(application block)的类中去,以及把系统监测(instrumentation)类连接到应用程序块的类。ObjectBuilder使得在没有配置文件下的情形下,也能很容易地使用应用程序块。
Brian Button 的博客上有篇《Enterprise Library and Object Builder》,对Object Builder做了很详细的介绍(翻译有点生硬):
“......对象生成器是什么东西?
对象生成器(OB)基本上就是个允许你定制对象是如何被创建之过程的管道( pipeline)。你通过类似于下面这样的语句来使用它,
MyFoo foo = ObjectBuilder.BuildUp<MyFoo>(“FooInstanceName”);
看上去极其简单,对么?其实,在调用过程中,你几乎可以改变,定制,扭曲实际发生的任何东西。使用OB创建对象的过程可以通过向OB实例注册策略(Strategy)的方式来定制。这些策略通过添加一些步骤来定制创建你的对象的过程。这些策略可以添加在创建对象的不同阶段,这些阶段包括创建前(PreCreation), 创建中(Creation),初始化(Initialization),和初始化之后(PostInitialization),基于你是怎么向OB添加的,取决于你指定的操作应该在什么时候发生。譬如,在企业库中,我们需要在创建前,创建中,创建后(PostCreation )添加几个步骤,我们在一个叫做EnterpriseLibraryFactory的类中把实现这些步骤的策略添加到我们的OB实例中去。
注册在OB里的每个策略在运行时,通过查询与之关联的具体对策(Policy)实例,可以收集各种信息和执行环境(context)。这意味着,你可以用同一个策略来实现不同的目的,只要在运行时通过不同的具体对策提供不同的目的细节即可。......”...[
阅读全文]