• 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()方法.

  • 相关阅读:
    bzoj1607: [Usaco2008 Dec]Patting Heads 轻拍牛头
    bzoj1016: [JSOI2008]最小生成树计数
    bzoj1051: [HAOI2006]受欢迎的牛
    bzoj1003: [ZJOI2006]物流运输
    bzoj1079: [SCOI2008]着色方案
    bzoj1179: [Apio2009]Atm
    bzoj1877: [SDOI2009]晨跑
    bzoj1821: [JSOI2010]Group 部落划分 Group
    bzoj1305: [CQOI2009]dance跳舞
    bzoj1858: [Scoi2010]序列操作
  • 原文地址:https://www.cnblogs.com/maplye/p/362938.html
Copyright © 2020-2023  润新知