最近在研究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()方法.