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