MyBean-关于单实例插件

单实例插件可以通过两个途径实现

第一个在注册时注册成单实例

beanFactory.RegisterBean(pvPluginID: String; pvClass: TClass;
    pvSingleton: Boolean = false): TPluginINfo;第三个参数为true代表注册的是单实例插件

 

第二种是在配置文件中设置插件为singleton

{

   singleton:true

   ….

}

 

在getBean的时候在会根据是否单实例,来处理

image

第一种方式的处理方式

 

 

image

第二种的处理方式,是存放在FBeanList中的

 

 

然后在DLL释放的时候会处理BeanINfo和PluginINfo列表的的释放,

image

 

image

可以看出如果该接口如果实现了IFreeObject就会执行对应的FreeObject方法,可以释放对象

 

如果在此之前你这个对象提前释放,就会进行重复释放,导致错误。

posted @ 2014-08-26 17:33  D10.天地弦  阅读(484)  评论(0编辑  收藏  举报