主要内容
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.使用配置文件
<!--出处:http://terrylee.cnblogs.com-->
<?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特性
//出处:http://terrylee.cnblogs.com
[Transient]
public class MyComponent
{
public MyComponent()
{
//
}
public MyComponent(string _Str)
{
//
}
}