`
maplye
  • 浏览: 111750 次
  • 来自: ...
社区版块
存档分类
最新评论

Castle- Startable Facility 简单理解

    博客分类:
  • .NET
 
阅读更多

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

分享到:
评论

相关推荐

    二维下料matlab代码-startable-standard:可启动标准

    二维下料matlab代码StarTable数据格式 StarTable是一种数据格式,旨在通过以下方式方便地存储任意数量的二维数据表: 人类和机器可读的; 和 易于编辑,审核和版本化。 除表格数据外,StarTable还支持 文件,表和列...

    stunnel 用来远程客户端和本地机服务器间的SSL加密进行封装

    stunnel用来对远程客户端和本地机(可启动inetd的:inetd-startable)或远程服务器间的SSL加密进行封装。它可以在不修改任何代码的情况下,为一般的使用inetd daemon的POP2、POP3和IMAP服务器添加SSL功能。它通过...

    docker-stunnel:进入容器

    stunnel 程序旨在用作远程客户端和本地(inetd-startable)或远程服务器之间的 SSL 加密包装器。 它可用于将 SSL 功能添加到常用的 inetd 守护进程,如 POP2、POP3 和 IMAP 服务器,而无需对程序代码进行任何更改。 ...

    stunnel:基于官方发行版的公共存储库

    漏斗概述简短的介绍 The stunnel program is designed to work as an SSL encryption wrapper between remote client and local (inetd-startable) or remote servers. The goal is to facilitate SSL encryption ...

    赫斯曼软件hiview

    赫斯曼网管软件hiview,可以对赫斯曼交换机进行管理,划分vlan,环网,耦合,路由等,包含了 HiDiscovery功能,是赫兹曼专用的路由交换机配置工具,运行后能搜索所有的网络设备,设置其IP地址和子网掩码,安装过程为...

    star-table:餐厅预订Web应用程序。 使用Ruby on Rails,PostgreSQL,JavaScriptReactRedux,JSX,SCSS

    StarTable是一个受OpenTable启发的全栈Web应用程序。 后端是在Ruby on Rails和PostgreSQL数据库上构建的,前端是由React / Redux架构组成的。 它具有供用户查看,预订和评论的餐厅。 用户可以通过搜索栏或通过单击...

Global site tag (gtag.js) - Google Analytics