Castle Startable Facility 简单理解

最近在研究Castle开源项目,就下午学习Startable Facility的一些简单理解,纪录下来,
由于Castle的学习资料相对比较少,而且大部分都是英文资料,一些中文的资料自我感觉学习起来比较生涩,
所以,我希望能够用很通俗易懂的方式来学习了解他,这样也就难免有不完整的地方,废话少说.
Facility是Castle容器的扩展单元,并具有注入性,简单的说就是不更改原有组件的基础上注入你所需要的功能代码,
Facility就相当于原有组件的"寄生虫",本篇介绍的Startable Facility是Castle自带的一个非常简单的Facility,
该Facility可以在原有组件创建和销毁的时候自动执行代码.
首先,我们要建立这个"寄生虫"类TestStart,该类继承IStartable,该接口定义了start和stop方法

public class TestStart:IStartable
{
 public TestStart()
 {
 
 }
 public void Start()
 {
  MessageBox.Show("testetsete");
 }

 public void Stop()
 {
  ....省略
 }
}


然后,将"寄生虫"装入容器
public class App
{
 [STAThread]
 public static void Main()
 {
  IWindsorContainer container = new WindsorContainer();

  container.AddFacility( "startable", new StartableFacility() );

  container.AddComponent( "test",typeof(TestStart) );
 }
}
这样当你运行的时候,就会弹出一窗口,也就会执行TestStart的start()方法.

原文地址:https://www.cnblogs.com/maplye/p/362938.html