技术开发 频道

Castle IOC容器组件生命周期管理


【IT168技术文档】

  摘要:Castle IOC容器为我们提供了不同的生命处理方式以及组件生命周期的处理,即组件装载,初始化,销毁时所表现的行为。如何去使用它们?本文讲对这一内容进行详细的阐述。



  主要内容

  1.生命处理方式

  2.自定义生命处理方式

  3.生命周期处理



  一.生命处理方式

  我们通常创建一个组件的实例使用new关键字,这样每次创建出来的都是一个新的实例,如果想要组件只有一个实例,我们会使用Singleton模式。在Castle IOC中,它支持我们对于组件的实例进行控制,也就是说我们可以透明的管理一个组件拥有多少个实例。Castle IOC容器提供了如下几种生命处理方式:

  l Singleton:一个组件只有一个实例被创建,所有请求的客户使用程序得到的都是同一个实例,同时这也是Castle IOC容器默认的一种处理方式。

  l Transient:这种处理方式与我们平时使用new的效果是一样的,对于每次的请求得到的都是一个新的实例。

  l PerThread:对于每一个线程来说是使用了Singleton,也就是每一个线程得到的都是同一个实例。

  l Pooled:对象池的处理方式,对于不再需用的实例会保存到一个对象池中。

  l Custom:自定义的生命处理方式。

  我们可以通过以下两种方式来指定组件的生命处理方式,如果不指定,则为Singleton方式:

  1.使用配置文件
<?xml version="1.0" encoding="utf-8" ?> <configuration> <components> <component id="comp1" lifestyle="transient"> <parameters> <para>component1 para</para> </parameters> </component>> </components> </configuration>
  2.使用Attribute特性
[Transient] public class MyComponent { public MyComponent() { // } public MyComponent(string _Str) { // } }
0
相关文章